Power Apps Mini Hackathon 2023 [Complete Course]

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
foreign [Music] hackathon session where we're going to build out an entire set of applications and powerapps my name is Brian Knight I'm one of the founders of pragmatic works I've written a few books on on the topics and today oh and today we're going to focus on on building a series of applications so let's begin but we're going to bring in a a fake customer today and John uh let's go ahead and join me real quick there we go and let's put you in a better better position here how about that all right so John how's it going today it's going great how are you Brian excellent excellent I had some technology challenges this morning but it's always okay I guess in this case uh but today we're going to focus on I'm doing a hackathon and what is a hackathon John can you tell us walk us through that first yeah hackathon is where you come to us with your data and we work with you on building out a production somewhat of a production models to help you understand not just on how to get to that final solution or something that looks close to that final solution but how to manage it how to fix it how to apply steps on it and really work with what you want to have so you can actually build it out even better into the future for yourselves yeah so this is something we do for customers all the time where we teach with an actual example and the example we're going to use today is actually an example that one of our customers brought to us that we went ahead and simplified for a three hour session that we have a day so John walk us through what do we want to build today you're you're acting as a role of a marketing person that want one of our customers actually had so what kind of what kind of questions or goals do the marketing customer have I think for us we you know for us to be able to engage our customers we want to be able to present them with you know a little bit of like a goodie box if they you know have certain plans with us maybe it's a specific uh item that they're purchasing we like to send them something in return so uh we can show our appreciation for them being a customer in this case being able to give out that goodie box like if you go ahead and and join us here and become a seasoned past member you'll get this goodie box yourselves uh what we want to be able to do is be able to reach out and send it out so as the marketing side we need to know obviously we know who our customers are but what size t-shirts what what should we include with that as we go and you know reach out to those customers yeah as well as tracking things like inventory and uh so we'll have we're gonna have two apps today hopefully one for the sales team that when they sell a season pass uh they can say hey here is your bird box ready to go and put a request out there and then another application for marketing to review and actually uh fulfill those requests this was a very similar concept that one of our customers had theirs was more marketing literature to send out to distributors in their case but more importantly this represents about 90 of the power-ups we see right you put something into a queue and you work the queue so as part of this hackathon today you guys are welcome to build this with me but we are going to go relatively fast you can of course pause me if you want uh you can go through and and um uh but also um if you do that we do have in the description of this video and I think Chuck and our marketing team is actually pending some comments to this step-by-step instructions on how you can build what we're building today it is crib notes so it's not very very detailed but it is 10 pages in notes one of the prerequisites you'll need today to actually build this example with us is an environment that has dataverse we'll be using dataverse for a few reasons it's going to simplify our build uh our build out immensely we can build out a data structures to store this data relatively quick so you'll need a an environment where you have access to dataverse you can get that if you wish by going to developer plan and I think John's going to put that in the chat window for you also what the developer plan link is you'll find it right here though once you go there to step-by-step instructions there on the screen about what how to get your environment hooked up again feel free to pause me it's gonna be really hard to work completely step by step with me today until you pause me and kind of kind of work in steps but after that you'll see all the step-by-step instructions on what we're going to build the tables we're going to build and the apps we're going to build inside there additionally in that same zip file in the description of this video you'll find the uh a zip file with the completed solution so when you download the zip file make sure you unzip it there's a word doc and another zip file as part of that that second zip file contains what you can Import in to your environment which has a completed solution all ready to go it's something called unmanaged code which means you can tweak it and change it however you wish we will do one break around 12 30ish time frame East Coast time it's about five minutes let you stretch your legs but largely we're going to truck along and see how far we can go in about three hours here today so again this this is being recorded common question we always get asked is this being recorded uh it is being recorded and it'll be uh uh played playback later of course if you watch it live you can ask questions and and John it's me kind enough to be in the background uh kind of emceeing for us here and highlighting questions and coming on screen whenever he whenever he needs to highlight those questions and let's begin so John anything else you want to add before we jump into this no just really excited to see what you can put together for us and hopefully everybody's ready to watch some magic happen right in front of you all right sweet so yeah uh uh these these hackathons are some of our favorite things to do because we get to solve real world problems as part of this so Johnson be our director and get rid of my face when I when I get in the way here but we're going to start if you're in the commercial Cloud you want to go to make dot powerapps.com if you're in the commercial Cloud if you're in the government Cloud it'll be something like make.gov.powerapps.us for the US cloud or uh your country of choice in there as well for your International which I can see in the chat window there's quite a few International folks out there right now and thank you for joining us Bob we have oh wow thousands of people out there so we're going to go out on the left side here once you go to make.powerapps.com and opens up the interface you're seeing here choose whatever environment the top right right there that has dataverse access available to you this is why you may want to watch us uh you know watch it in more of a classroom style now and then go back and do the example later because you may not have dataverse access yet and you'll know that in about about uh three or four minutes here whether you do have that access so I chose just a quick this is a brand new environment nothing inside of it yet so we're going to build two applications today a canvas application for our our sales team to enter request in and that a model driven application to see those requests and fulfill those requests really really common examples uh that you'll see over and over again so just to kind of show you what it looks like in the end this is our canvas application we'll be building a really simple one that shows you all the uh to see all your requests and then be able to add new requests and then the model different application you'll see in just a moment here as well all right so let's begin get rid of this all right so to start with we are going to build a solution and a solution is how you want to start with any Power Platform application or flow or whatever you want to do in Power Platform you always want to start with Solutions the reason why I want you to start with Solutions is because it will help you move that from Dev to QA to prod down the road and this is what I gave you in that zip file you can again just hit the import solution and it will bring over the completed code for you if you want to start from a completed solution but we're going to start from from scratch here again a brand new environment nothing to see as you can see other than the stuff it's the default stuff for power Pages here I'm going to hit the new solution button that you see in the top left and I'll call this uh merchandise request I'll call it marketing request that's fine okay notice the one below it does not have any spaces and the one above does have spaces don't worry about that just make sure you never put spaces in this don't put any special characters just keep it very very simple a publisher is how we can see who is responsible for the application it also makes it where we can see uh uh essentially every table will have a prefix on it so in my case I just have the default Publishers right now I'm going to hit the new publisher button to create a brand new one I'll call mine pragmatic works you can call yours your company name call whatever you wish it in case you wonder your application can look different so absolutely fine so I'll call my pragmatic Works my name again no spaces just pragmatic Works no spaces and then my prefix is PW so just to kind of recap that I just modified that no spaces here and I put a prefix of PW every table that I create like you're seeing at the bottom here we'll have PW underscore whatever the table name is we can also put the point of contact right here if you wanted to we're going to leave that as is otherwise we could all put John's cell phone number on there and then we'll hit save and let that do its thing for a few seconds after it does its thing we'll go ahead and select that publisher from the drop down box here and then hit create again this will take about 10 seconds to do its thing and then now we're ready to create tables in case you have not built a solution before in Power Platform you can always add your old stuff into it as well so you can always retrofit stuff that you may have done the old way into this as well but for the time being we're going to hit the new button and we're going to create two tables our tables are going to hold what merchandise what merch do our marketing team want to distribute and then our second table is going to be the request coming in for that merch so let's start with the first one let's go over to new table and table again external tables allow you to link to things like SQL servers SharePoint and Excel spreadsheets I'm going to go new table and table in case you forgot how we got here I'll go back from scratch here I went to Solutions and I clicked on marketing request to get back here again and I'll do new table and table the first one I'll call this merch item make sure you always keep a singular name here if you do a plural name you will be in pain later trust me it's hard to unravel that and you're going to wind up likely deleting the table and re-adding it the reason why is you'll see right below it has plural items right below it so keep it really simple alternatively we can also add attachments here if you wanted to uh you don't have to have it this example but if you do you cannot undo it once you do it it allows you to store things like images of the product uh you might have a cad drawing or notes or whatever you wish to put in there but in our case we'll keep it on for the time being and then I'll go to my primary column the primary column is how you and I are going to communicate about a given product hey I'm calling about uh the medium shirt here how much inventory do you have so I'm going to call this just merch name merge item name or something like that call it whatever you want I'm going to keep mine fairly simple here and just call it merge item name uh that'll be my primary name column this is not the primary key column that you would think of in a SQL Server database this is basically how two humans are going to communicate about a given record it could be an application number it could be whatever you can call it item name doesn't really matter I'll call mine I'll call mine item name matter of fact I'll keep it that keep it that easy once done we'll hit the save button and what's happening right now well what's happening is is creating a table in a dataverse database and dataverse is essentially a SQL Server database it's a really easy way to build these so if you're familiar with SharePoint already going to dataverse is going to feel very very comfortable where I can hit the new column button it feels like a SharePoint view in this case and add new columns and do things like that so our only one I want to add here I can hit this little plus button right here or I can go to columns and see a list of my columns here the list of columns you see here is pretty vast right and it's all the plumbing that's built in the dataverse so if you want to find out who created a record when it was last created um you know who modified it all that stuff is available for you there so in my case I'm going to go ahead and create a new column and I'll call this one approval required all right and I'm going to make that my data type I hit the drop down box there I'll go to Choice and then yes no so is this one item that I'm trying to send a customer so premium that I need to make sure that goes through extra scrutiny before we send that to the customer okay maybe it's a high value a backpack versus a t-shirt for example that I want extra scrutiny on it you also might traditionally most customers will put a quantity column of how much inventory they have here as well so now that we have that our first table is now done our next table is going to be a little more complex don't worry so for our next table I have to click on the word tables here or the word all once I do that I'll hit new table and table one more time this table is going to be called merch request and for this merch request our primary column this time is going to be called uh request number this request number column is going to be an auto number column that's one of the questions I'm sure you're asking right now is can I do things like Auto numbers you can absolutely do that and we're going to show an example right here so this primary name column could be a title or it can be a number so think of this like the title column that you might be familiar with in SharePoint so once I'm done there I'll hit save and that's going to create our next table once that table is created I'll click on the columns word you can click on it right here on the middle or you can expand the left side and click on columns here whatever is comfortable for you go ahead and try that all right so give that a few seconds and you're going to see a list of all the cons what I'm looking for now is that request number column that request number column as you can see it's a single line of text right now and I need to make that an auto number where every new request has a unique number on it so when marketing when uh sales team calls about hey I'm calling about your request one two three they know which record to pull up so I'll select the request number column and I'm going to change that from single line of text to an auto number and then optionally you could put a prefix on this so I like to put a prefix of like you know R for request or something like that that way every new request has a value like that r1000 r1002 and so on and so on by doing that it creates a taxonomy in your data where when I click call and I see a somebody's calling about b1000 I know they're calling about a business application versus i-1000 which might be an individual's application so this allows you to kind of uh think about you know uh that that number has a meaning of what table it came from I could also do like req or Mr for marketing requests or whatever you wish I'll hit the save button there and now my record it my table is now ready to go but I'm seeing too many columns it's it's confusing to me like where is my stuff versus Microsoft stuff so one of the tips you can do is I can go over it says uh name right here and hit that down arrow that you see there once you do that click filter by and type in whatever your prefix is for the publisher you can see in my case it was PW right here I'm going to type in whatever my prefix was and then hit apply and now I'm only going to see my my columns a few notes here you'll see it has two columns one we know we created the the request number what is this merch request column though well that merge request column as you can see right here is a unique identifier it's what makes a a record unique so if you want to find out what column the primary name column primary key is for this table it's always going to be the same as your table name so you would say like merch request dot merch request to get the table and the column underneath that table which we'll see in our canvas application later once we're done let's go ahead and create a few more columns we're going to have about five columns to create most of these will be very very easy to create two we have six columns to create excuse me so let's create our first one we need to find out what product they want to send who they want to send it to what company that person's part of and what what a person that I want to send it to at that company I want to find out the due date of when I need to send this out and then maybe some notes of what I want to send out also so let's start with that I'll start with what item do I want to send out so I'll hit the new column button up top so I'm going to take a step back new column I'll type in merch item for data type I'll change that data type from from what it is now to a a lookup column and a lookup again so look up and look up for data type a lookup column connects two tables together it makes sure that we can see that there's a relationship between these and it lets us navigate from this table to another table in our case it's going to show you what product the customer wants the related table I want to go to is called merch item if I just type in mer it will show me the table there and I can click on it then you can also select it and look for all the tables there again this is the fresh environment and look at all the tables Microsoft has provided me in dataverse that I can kind of Leverage some of those I can leverage some I can't but some of these are really really handy I'll hit the save button and it's going to create that merge item column which then links the request to the merch item next I want to create what company is this company from so I'll hit new new column again and I'll just call this one account now again this is going to be a lookup column and a lookup again this time though the table is going to be the account table so let me zoom in a little closer here so you can see all this all right there we go so I change that change this and I change this and we stop for a second all right the account table holds a list of all the companies that are in my dataverse database and it should be leveraged if at all possible you should never if you have a dataverse database ideally you should never create your own company table Microsoft has already done that for you and the account table has dozens and dozens of columns that's going to save you tons of time and It prepares you for things like power Pages down the road if you want to externalize that to your customers on a web page so we're going to select related table and then hit save all right cool so we are rocking and rolling uh let's take a few seconds to create this table now we want to find out what contact at that company do we care about so I'll create new column again this will be my contact table there we go this will be again a look up and look up and the table this time is called Contact so I'm going to start typing it in and you'll it'll narrow it down for me again I'll zoom in a little closer here contact look up and contact now these two these two names you're seeing here do not have to be an exact match I do it just so I can easily find the relationship in the tables it makes it easier for me to track down down the road also but that is what your sales people are going to see all right give that a few seconds to create now I want to know the due date of when the salesperson has promised this to the customer it's my marketing team my fulfillment team can fulfill this in a reliable way so let's hit our new column again and we'll call this one due date this is going to be a date and time but on our date time we'll make it a date only I don't really care about the specific time or this is this is going to be due now there's some quirks with the only columns and one of the tricks you can do to avoid those quirks which are like mostly time zone related quirks is I can go to Advanced options and just say you know what I don't care about the time zone here I don't want to store one at midnight in other words I really truly only want date time this is under Advanced options so let me zoom in a little closer here so I have changed at a due date I made it a date time date only and then one more time date only again by doing that it's not going to store the time as midnight and I won't be uh potential issues with like GMT time and all that it's always going to Only store that they want this on July 1st versus July 1st at midnight which could potentially have issues with time zones at that point so I I did date only twice there and I'll hit save give that a few seconds and we're almost done guys all right our next one is going to be fulfilled has marketing fulfilled this request yet so I will hit new column again and I'll put fulfilled all right now for this one we can decide do we want to be a drop down box if he wanted to be a drop down box we can choose a choice column or do we want to have it as a yes no little toggle we're going to choose a a yes no field in this case but if we wanted to say you know uh pending uh you know in shipment and then deliver it if you wanted something like that where it was a structured list we might use a choice column for an unstructured list like this we'll just do yes no in our case and you can see we're going to default that to no and then we'll hit save but let me just zoom in a little closer here we did fulfilled and then yes no this was under choice in case you're curious under a choice it's where you're going to find that okay we didn't set any other options other than those two options and we'll hit save one last column to go and then we're all done so let's hit that new column one more time and this one is going to be our last one and it'll be um merch notes you know what kind of notes the sales person sharing with us on on what they want to do with this request make sure you call them I found this the hard way is not just note or notes that is a reserved word so put some kind of keyword in front like request notes or merch notes we're going to use merch notes for the time being and then I'll hit the drop down box where you see single live text you'll see a little arrow next to it and do a multi-line text okay so it should look like this all I changed was this and this all right and I'll hit save again all of these notes the step-by-step instructions if you're struggling to keep along totally understand I totally recognize I'm going fast here uh all the notes for that are in the comments of this chat uh or also in the description of the video so you can see find a word doc that's embedded in that zip file that will walk you through step by step what we're doing right now also if you want to play along generally in a hackathon the customer is driving not myself but in this case we're kind of I'm kind of going a little bit faster and I'm driving for you in this case all right so we have all of our columns now done a few things to note about dataverse if I want to change a column I can change its display name but the actual name behind this which you'll find are Advanced here cannot be changed it uses our our prefix here of PW and this is what you're going to see inside of things like power bi as well as things like SQL Server if you open up my management studio for example you'll see PW underscore your prefix underscore to column name so that cannot be changed if you wanted to change that you're going to have to delete the column and re-add the column unfortunately at the time of this recording at least or this live event at least so in this case we're roughly done with our table structure if we're building a canvas application we can begin building our canvas application right now however we wanted to also build a model driven application and we got about 20 minutes to do that so we're going to have an application built in about 20 minutes so first step we want to do for a model driven app is first of all talk about what why would I choose model driven versus canvas well the reason why people usually choose model driven is typically speaking there is very very low code and generally no code in that it's all about let me kind of bring over this application right here it's all about list of data and forms to enter new data so I can hit the new button and add forms of new data here if I wanted to as well and you'll see list of data right here but it's less about the Aesthetics it is pretty I mean it's good enough we can but we can do a lot of things for some customers this might intimidate their users because there's so many buttons I can click on there's so much I can do I can do things like show charts I can I can do like power bi reports in here so this might be a little intimidating for some customers so in our case so we are going to use this for our marketing team because they're used to that and then for our everyday users we're going to choose a canvas application which looks like this where they can see uh I kind of have a set amount of things there's only two things they can do on the screen right they'll request out or cancel uh over here they can go ahead and say edit or delete but there's only so many things they can do so it's less intimidating for them as an end user in many cases all right so that's the why now our steps to building this canvas application what we're going to do let me get this out of the way there there we go what we're going to do is we're going to start and kind of shrink that down a little bit there we go we're going to start by we have our columns all done check check that off your list the next thing we're going to do is we're going to build our views of how the users are going to see the data those views look like that listed customer list you saw a moment ago in our model driven app we can use those views in power pages and power apps uh you can use them all over the map here so if I change the view change how the data is sorted every application using that view will also change we're then going to create our form to enter the data and and edit the data and then we're going to build our model driven app the hard part is building all the rules and building all the forms but the application part is going to take us less than five minutes for for model driven and the reason why is all the logic is in the table that's why we that's why the uh the challenge could be there so let's begin back there again so I'm going to start here by going back to my merch item table and as you expand this on the left you'll see a whole tree of what we can do of course we can add business rules into it we can add different relationships or things like many to many relationships we can add keys for things like duplicate detection and all that but the ones we care about right now are views and forms we're going to start by modifying our view and then we're going to modify our form next now it's not important that yours looks exactly like mine in this case you can say hey this is I want to do these columns versus these columns absolutely fine this is your baby you make what you want to out of it so I'm going to go over here to where you see merch item and I'll click on view you're going to see a list of a number of views that Microsoft has already created for you active merch items is the table that has a list of of unarchived records records that are still have not been deactivated are soft deleted and inactive are the soft deleted records these other ones you're seeing here can also be used however we're not going to use them for today's example so we're going to go over to active merch items and click on it again how I got here let's kind of zoom in here again I want a merch item I went to views and I'm clicking on active merch item it's going to click on it now okay once you do that this is going to be similar to creating a SharePoint view you can see here that I have my my item names I can then look at all the columns that are available to me we can also navigate the referential integrity and find out what tables relate to this table but in our case all we have to do under merch item is first of all select that filter that you're seeing right here and go to custom now you can see in my face out of the way now that when I do that when I change this from whatever it was before to custom I'm only seeing my columns above it so by doing that now I can go ahead and click on it or drag and drop it I prefer clicking because it's a little harder to drag and drop sometimes then you can kind of Shuffle things around at that point so only one column to add here or if you don't want to add any columns no worries then go ahead and hit save and publish and while that's saving and Publishing you'll notice on the right side that we have sorting and filtering of the data so if you only want to see the products that require a approval you can create a filter there to only show those or if you only want to assert by a search by the a sort by the quantity um the quantity of inventory you can also do that all right once that spinner goes away from Save and publish you're now ready to hit the back button so just because you hit save doesn't mean it's available to your customers saving and Publishing will make sure it's available for any application using that there so it's really important that you publish after each step otherwise nobody can see your your goodness that you built all right so one now is now done and then I'm going to go over to forms next I can get there by expanding again over here go to merge item and clicking on forms we can also get there by hitting the drop down box right here at and then selecting forms here so you can either select forms here or just pick forms here under merch items once you do that you'll see that there's three forms that are available for me right now the one we care about and yours might be different than mine is we're looking for the word main here go ahead and select the information word under Main once you do that it's going to open up your form editor this one's going to be a super easy one to do also we're going to change that filter that we did earlier so on the left side I'll change that filter to custom and then click on approval request there we go we're all done there's lots more things you can do in here and we'll do those in our next table like for example we could if we don't care about the owner of this row we could drag it up the top and you'll see it turns slightly purple as I do that once you release it will show that owner column in the top right so there's two schools of thought there by making it more obvious more in the header some people will notice it others will not notice it there because you've made it too apparent in that case so once you're done hit save and publish again now it's available to your users once it finishes spinning here like it is on my screen right now then you're ready to go ahead and hit the back button mine's taking a little while it'll say saved and published little check box and then I'll hit the back button again our next one will be a little more complex and a little more fun all right so now we are now ready to go over to our other table so I'll expand tables look for Merch uh request and then I'll go to views the same thing we did last time I expanded my merge request and then I'm going to views next and then I'm going to select the active merch request option that's what you want to go ahead and click on right there okay give you guys a few seconds and click on that all right so now this is where we might vary a little bit and this is absolutely fine yours can look different than mine we want to avoid is putting every single column on this screen your marketing team is going to want every single column in here however they can always click on a column on a row and go deeper into it this is just a summary view of all the records in your table first thing again just like last time above me change this to custom now we can see only R columns then think about in your what would you think your marketing team would want to see on the summary view over here so think about that and click on the columns that you think would be important I'm going to do the ones I think are important it's completely up to you on what you want to do so I'm going to choose I want to know the contact that we're sending this to when was it created when was it when is it due and has it been fulfilled I'll just do those three you can do whatever you want again it's not matter in any way if yours looks different and again again you can drag and drop these you can move them around you can sort them you can do whatever you want to do you can also skinny The Columns down or expand them if you wish okay what you see is what you get and if you had data already you would see the first x amount of rows in there you're now ready to hit save and publish now there's some common questions we get asked right now is can this view be editable and absolutely can be editable there's lots of customizations you can do around this but we have it saved and published and now we're ready to go hit the back button one more time all right John how we doing so I'll hit the back no question so far looks like so it looks like that's all it looks like you're Manning all the questions in the background so that's awesome awesome so let's go over to our form next just like we did last time I'm going to select the views and then go to forms to edit that form once we do that we'll see right here that we have the main form again notice it kind of hops around last time it was my last one so find whatever one is your main form and then click on the word information underneath that okay once I do that it's going to open up my form and this one is going to be a little bit more complex the first thing I'm going to do the same thing with last I'm going to drag owner up to the header to get rid of it that's the owner of the request who actually made this request but that can transfer this is how we're going to kind of keep track of of like record ownership and all that we won't go over to Security too much but just note I have tons of other videos on this for this request number keep in mind this is an auto number column and because it's an auto number column we're going to make sure that uh we're going to make sure that we put that in such a way where it's read-only this is going to allow us to kind of easily easily kind of tweak that as we go from from one to one so we're going to make that read only by selecting row number and on the right side select read only then we're going to add all the columns we care about and we're going to put a few more touches on this to call it a day so let's go back there again and let me go ahead and put myself at the bottom here oh John already got me thank you thank you John so first thing I'll do is I'll select the request number and on the right side you'll see read only that's going to mark it as locked so the customer does not feel like they have to actually enter anything into that column then I'll change that filter like we've done four times already to custom I'll check all my Fields account contact merge item due date you know uh and then fulfilled so I checked all the columns right there now what can we do special here to make this a little better experience for our marketing team well it would be nice right now once I select a customer they're going to have to go and click on that customer to go and find out that customer's information what a pain in the butt that's going to be to get that customer's address their phone number their email address and all that so instead of doing that what I prefer to do is create a section right here I've got a read-only section that has that customer's information inside of it additionally when I select a company right here I wanted to only show me the people at that company so let's start with that company to contact kind of a relationship if I select contact right here you'll notice as I look down here I can drill down and you'll see filtering on the right side when I select filtering I can scroll down just a little bit and I can say only show me related records to something as I do that you'll see it's only going to show me the relationships between the contacts that are at a certain account now in my case I don't only care about primary contacts I want to see all contacts at that Merchant or that account so I'm going to change that instead to company name okay so let me zoom in a little closer there so you can see that so again what I change I checked that box when I selected the contact I then change it to filter by related rows and then I chose the account table and the company name the primary contact only shows me who is the principal at a school or who is this who's a boss at this company but in my case I want to send this this merch to anybody at the company so that's why I slotted that company name versus the primary contact this allows me to go through and and uh to create a cascading lookup basically makes it easier to do that there's other things we can do like hey don't show me the uh for this you know don't show me the most recently used items here also so and by checking this box it hides the fact that I chose you know Bubba Watts last time are Mickey Mouse this time it only shows me the contacts at the account if I don't check that it's going to show me Mickey Mouse because I slept at Disney last time okay so it's a good idea when you do this filtering to always check this display here as well hey John I see if you have a question so the question is if I create an application and run it uh for a day or so is there any way to look at my Microsoft account and see how much the application is uh and I think it's running off here uh is run absolutely yes so the question is in this case how do I see the performance how do I see performance and how do I see the metrics this is my completed application here this is a question from Bill here if I go over to my app uh any app here I can hit the three Dot and then you'll see the uh you'll see the analytics button uh it's going to be under go to details first there we go and then you'll see analytics right here so bill this will give you a list of all the people all that how many errors you've had how many runs you've had what kind of browsers they're on you know what you can also look at things like run time later and all that as you can see this application is pretty boring I haven't run it yet so I'm building it right now with you so that's how you can do it Bill if you if you wanted to great question there okay so we now have the Cascade now done now we're ready for taking that little bottom section that we mentioned before I want to see my customer information right there to do that I'm going to click on components on the left side here you'll also see by the way you can do more complex business Rules by using JavaScript or you can also use a business rule feature in this if you want to show or hide things based on hey we're out of inventory I need to show certain products or hide certain products so in my case I'm going to go to this component button right here you can also access it up top if you wanted to then in the component button so it's right there or right there I'm going to add a one column section make sure you click on one column section and not one column tab okay that adds a new section down below and on the right side I'm going to change that label to customer info once I change that to customer info I'm going to drop something inside there that's going to say hey whatever contact you click on show me his details down below it's only going to show you these columns once you select a contact so once I have that done on the left side you'll see something called a quick view form there's two ones that are pretty interesting this is the quick view form is when I'm at a child record to parent record okay so I'm looking at a request I select a customer and I want to see that customer's actual contact info so I'm looking at a child going navigating up if I want to look at a parent and navigate down uh child this is subgrid of how I can do it so in other words I select a product and I want to see everybody I've shipped that product to that's how all the requests for that product that's a subgrid so you can you can navigate up or down the relationship in my case I'm going to go ahead and make sure my customer info is selected it's kind of bolded right now and then I'll just click on quick view alternatively you can also click and drag once I do that I want to see the contact info so I'll change account to contact then I'll change what form do you want to see let's do the contact quick form all right so again I did quick view contact and then contact quick form this quick form that you're seeing here are this this a quick view form is a form that you have control over so when I hit OK or done if I don't like what I see I can create another quick view form that has the information I care about like right now I'm missing address for example so we could add address our quick we could add our own information like what is the value of this account or whatever and add that down here also so with that said I think this is a pretty good starting point let's click on Save and publish to save this into the system and once I've done that we're ready to hit the back button after this finishes awesome so we now have our views done to see the data are forms done to enter the data and now then we go back we're ready to create our application next to create our application we'll click on the apps word on the left side of our solution we'll click new app and at first we're going to choose a model driven app so I get to hit apps new tab and model driven application so that model driven application again is going to focus on the list and forms and this is going to be our Administration app for our marketing team to fulfill those requests all right call the app whatever you want I'll call mine uh merge request uh Q something like that and then hit create you of course can put a subscriptions on it and all those kind of things that's going to help people discover these apps later we don't have time to cover Security today but there's lots more on the security side you can do to where people can only see their own records and lots more around that the only steps you have to do technically speaking is hit the add page button pick whether you want a data verse table in our case dashboards or things like power bi reports or your own reports inside of here and custom pages are for things like canvas so we're going to choose dataverse table and click next there's four tables we want to click on account which holds our companies contact which holds our people in those companies and then our two merge tables so merch item merch request count and contact those are our four tables and then hit add all right give that a few seconds awesome now technically speaking your app is done so I Promise You by noon we'd have the app done we're done by 11 47 not too shabby right so now we want to go through and make this app a little bit better and how can we do that well for example you see this group one it's kind of a garbage name right now right we can fix that though we can go over to the left side where you see navigation so the far far left on these vertical icons we'll select navigation right there once you do that let's create a new group and we'll call this group on the right side so I hit new up here is an add group and on the right side I'll call that group have we call it um let's call it uh customers customer info maybe whatever you want to call it then here's the kind of silly part we have to go through on accounts and contacts hit the three dot on those two tables hit move down move down move down and then it lights up as soon as it gets down there same thing for account move down move down and then finally it shows up in the right group for group one call it whatever you want I'll call mine uh merge request again up to you on which table name makes sense okay so it looks like on the left side this is exactly what our app is going to look like right here these are the buttons they're going to see if they have permissions to those buttons you can also customize this ribbon and add your own there as well so watch some of our other videos on how to customize everything I built one just a few days ago that will show you how to customize these up top all right with that done hit that publish button give it a few seconds and then we'll hit the play button after that finishes spinning okay so so far you have built your first app in 50 minutes ain't too shabby right nice job so if we look at this we can see that I have a list of items there's no items in here so let's create a few items we can work with here so I'm going to create a new hit a new button for mine and you can create whatever items you want I'll call mine uh nerd kit for example this uh no approval required I'll hit save and close I'll create one more here I'll call this one uh learn with the Nerds Church and I'll put a medium shirt on that one and I'll hit save and close good enough so we have two items here one of the things we can do if you wanted to add more products is you can uh do it a few ways now your marketing team is likely going to love them some Excel and that's why they're going to love this style of application so I can hit the three the drop down box where you see export to excel and hit open in Excel online this is optional you don't have to do this guys but if I select open and Excel online this can allow me to go through and add a few more products I can copy that Medium shirt for example and then paste it paste it and then do you know add one as a large just like I would do in any other Excel spreadsheet uh make one and XL and then do one as a small there's copying and pasting I'm not going to touch the other columns because they will default appropriately and I'm definitely not going to change the created on because that will default appropriately when I'm all done I can just hit uh and I can also do like you know products you know three product four and so on and so on and then you can even do things like you know do all your Excel tricks you do today like dragging and dropping by just dragging that little pin then I'll hit save this takes about oh three or four minutes to load these records to find out what records have changed you can track the progress by hitting track progress I'm gonna I'm gonna go ahead and keep on going so I'm going to close that little pop-up window that happened but in about three or four minutes I should be able to hit that that button you're seeing up top here oh that was fast that was a lot better than three or four minutes uh it might be different for you but I normally see it three or four minutes this was way way faster than I'm used to seeing so I hit I hit the refresh button I got back my products awesome so that is one way to allow marketing to go through and add stuff they need to to the prop to their list without having to go and add individual products chances are they have an Excel spreadsheet already you can also go up top where it says Excel templates and you'll see upload templates and all those kind of goodies and then you'll see import from Excel here as well so you could import from csvs you can import from a uh a SQL Server database an Oracle database using something called Data flows so lots of options you have to get data into here you also might notice that I have accounts and I have contacts oh I thought I had accounts and contacts yeah I do okay cool if you don't have those and you want to have those and I have them there's not there's not mine so if I change it to all accounts I Oh I thought I had some okay I thought I had accounts here I must not so if you want to see some accounts and I thought I had some contacts I do have some sample records these are all sample data course nothing's real here uh if you want to add some sample data one optional thing you can do is you can hit the gearbox up top right and then go to advanced settings okay so take a few seconds to open up this is the backstage of dataverst where you can kind of set all the stuff that you want to do so take a few seconds to open up and it's not important that you do this this is only important if you want some sample data in here on the drop down box where you see settings right here you'll see data management which the third column over third row down and one of the things is sample data if you do that you can actually hit the import sample data right here to bring in some sample data for yourself if you want so it's under under sample data and you'll hit install sample data as well it should say that at that point okay so if you want that you are more than welcome to do that uh in my case I missed the only thing I'm missing looks like are some accounts I thought I had some accounts in here I guess I don't let me go and add an account here okay I'll just call this uh Brian Inc and now let's go ahead and add that and save and close that and then I'm also going to add a two contacts to Brian egg so Jim Glenn congratulations a fake fake record of course I'll hit the little magnifying glass here and I'm going to add him to Brian Inc and hit save and close and I'll go back to my accounts again and I'm gonna start my contacts again I'll pick another random record like Robert Lynn and I'll also add him to an account name by hitting the magnifying glass and picking Brian ick and hit save and close again not important there at all so we have another question that just came in here from Stanley hey Stanley is it possible to create a column that pre-populates a user supervisors in a mile driven app uh I kind of need a little information about that but yes you can I think you want to do that from ACA directory basically right you want to go and look at the ad and see who's who's who's what the hierarchy looks like is that correct if it is uh yes it is possible it will involve a little bit of uh work to make it happen it might involve in things like JavaScript to make it happen also uh the business rule engine that's there cannot do that automatically however just because I when I'm in ad like you're seeing right now if I hover over Brian for example you'll be able to see all the stuff that's in ad uh when I when I click on Brian for example you'll see that more information there you can also hover over it to see is he available and all those kind of things as well okay you can also build a hierarchy a a hierarchy and org chart inside of this so if I want to look at Jim Glenn at seek that fake record here I could go through and say that Jim reports to so and so it's just created a reports to column and say you can create basically a self-join it he reports to Bob who reports to to Jane and so on and so on and so on off the chain there okay another question here from John for the for things like accounts and contacts is it better to use external SQL Server on-prem tables or periodically copy them oh that's a great question John so what what would I be if I didn't say it depends well uh in this case typically what I would do is I would I would reflect those that data into contacts and accounts yes we can link that SQL Server live using that external table option but if we copy that data to accounts and contacts and what what the benefit of that is is if we do that it will enable us to be able to do things like um uh use power Pages later uh and and make that their username and password and there you can do permissions and Security based on that to where hey uh Jim here our fake record who works at Brian Inc can only see Jim's records or Jim and Hank can only see Brian Inc records so it gives by by using the pre-existing tables and not linking the SQL server in that case it allows you to not code yourself into a corner where you have things like power Pages you can eventually do power Pages storage all usernames and passwords into uh into that uh for you if you wanted to okay great question there thank you Jim all right that was John sorry all right so with that now done we have our app now built we have our merch items roughly in here we can also go over to merge request and let's put a dummy request in here so we can kind of see how this looks I'm gonna go to merch request and hit new merch request notice that's read only right there I can't type anything in there for accounts we can select Brian Inc and then for contacts in that account if I hit the magnifying glass to the right we'll see only the two contacts at that account so Jim Glenn you are the uh the benefactor here now what merch item does he want I hit the magnifying glass he's going to get my nerd kit which we send with all of our season pass people there we go and then what what does when does the sales team want to see this they want to see this uh on Jim's door on the 24th of August here and any kind of notes I'll put my notes here all right notice we also our quick view form is showing us Jim's information down below so when I hit save and close our first request is now in and we're ready to go there's also by the way things like this new look right here and if I select it you may not be seeing it it's rolled this out recently so you may not be seeing it quite yet depending on when you're watching this video if you're watching it today it may it may not be out there today but if I switch we can always switch back you'll start to see a new interface start to show and it's a little bit cleaner here from the interface perspective so when I go the form it kind of they kind of do more fluid controls here in this case where it kind of looks more containerized and more clean in this case so the other thing you can do by the way is in your application when I'm looking at the application you'll see settings up top here as well settings one of the neat settings you have now um and this you don't have to do this guys if I go to Features there's a whole bunch of upcoming features that are pretty nifty upcoming one of those is for things like uh try the new look and feel but also you have this smart address view here this will make it to where if somebody types a bogus email address for Jim it will then uh not let them hit the save button so you just toggle that on you also have to turn it on at the environment level as well so it has to be turned on the environment and then turned on here so once you do that into the save and publish again or just publish the app again and it will then be ready after you turn it on the environment level okay so we'll come back to that later but looks pretty darn good now we have our app ready to go I'll hit the back button in the app and there's our merch request queue all right can I show you one more time here here's our here's our application we have our items we have our request and then of course we have our contact info and our customer info down below so it's noon you just built your first application from end to end using dataverse now we're ready to get into more fun example using a canvas application next so again let's kind of rehash why we would choose each of these so canvas applications why we would use a canvas application is it makes it where it's you limit the options for your end user they can only do so many things in a canvas application and the things they can do are what you tell them the pro of the canvas application is they look prettier they you kind of guiding a user down a certain path the con of it is hey we got two hours left it's going to take that to build our canvas application we maybe finish early that's okay so canvas applications take longer to build because there's more code involved the code we're going to use is is code called uh Power FX and if you're curious about where you can find a coding language for that if you Google powerapps cheat sheet are being or whatever you'll find the first link in there is our pragmatic Works powerapps cheat sheet at the bottom is all the common code you have there for that so this allows you to make it where it's super easy to build stuff out it'd be super super pretty however it does require more work probably three to four times more work to build out a canvas app than a regular app some of the other Pros is you can use things like component libraries which are reusable widget to code these allow you to easily find uh like a header a footer a menu structure and use it over and over again matter of fact if you search for power apps uh let's see here this is first for a GitHub there it is John would you mind putting this link in the chat window also here is our UI framework here which uh with a video right there this UI framework is going to allow you to to do things much faster when you're building canvas applications so you'll find that link I'll zoom in a little closer here you can just Google Google uh pragmatic Works UI components and it will get there I'll put that up up a little bit more here and John if you don't mind uh putting it in the uh the chat window I'll get i'll get uh myself off the screen here for a second and zoom in a little closer on that so I'm zooming the wrong window there there we go so you can see that one more time there so canvas applications allow you to have reusable widgets that make it easier to build uh campus applications with you'll find tons of libraries out there that are already available for you uh you can build one for your own company but the goal is to build beautiful applications for your Frontline workers these applications will work on any kind of device a Mac a PC an iPhone or an Android or any kind of tablet PCS it will not matter you'll build one one set of code and it'll work across the board so we're going to build a canvas application now if you have already built it don't worry we're going to show you some cool stuff if you've already built some canvas apps if you have never built a canvas app we'll start from the ground up walking you through this we are going to show you some new things in here also that are brand new to powerapps so I'm going to go back over here again and let me tuck myself on the side here and then I'm going to go back to my Solutions I'm going to start from scratch here I'm going to go to back to my solution or I can go to make.powerapps.com and start from scratch I will then uh go to my ride environment all right there it is and then I'll go to my Solutions and find the solution I created earlier chances are you're already in the solution and you don't have to do that gyration that I just did once in the solution you can see we already have an app here so we're going to go ahead and create a new app so I'll go up top what I have all or apps selected hit new app canvas app then I'll select a tablet app and I'll type in uh merch request all right and then uh app or whatever you want to call it and then hit create okay so over the next hour and a half or so we're going to build out a canvas app from the ground up then we'll show you some extra goodies that have not been seen before the first thing that we're going to do to start with is I'm going to turn on something called modern controls as of today's live event modern controls is still preview but they have some really cool stuff inside that to get modern controls I'll hit settings up top here and when I do settings I'll go to upcoming features and I'll just search for modern there they are try new modern controls and I'll flip that to true so again just to recap that again I hit settings I went to upcoming features and I had searched for modern and I toggled that on and this is optional but if some of the things we're going to do are going to be using modern controls which are pretty darn snazzy all right so we're ready now to do to do our thing here you'll notice now that when I click on the insert ribbon up top that allows us to add new stuff we have modern controls and classic controls okay we'll be using both most but what most of you doing classic controls today let's give you a little tour just in case you are new to powerapps here alright so on the left side we have our tree View at 4N right now this tree view here uh let me actually go full here so you can see the whole thing here here we go the tree view allows us to see all the controls that you're seeing right here inside the application all the screens all the buttons all the galleries all the forms that that's the tree view gives us as you can see in the tree view right now we have one screen just called screen one and that's all we got right now additionally if I look under the next one down is my insert ribbon the insert ribbon gives us a list of all the goodies that we can do to make this uh application more fancy okay you can also add your own things to this again we have insert uh a classic and we have modern okay all right okay I got it and then you also have the insert ribbon up top so whatever is comfortable for you hit the plus button on the left hit the plus button up here either way it does the same thing the next option down is data this would be all the items that you want to add all the tables that you want to add all the uh so I think before was mentioned about Office 365 getting the manager from that we can add the Office 365 users area and that will allow us to add options like that media is for our our logos and stuff so if I go to Media I can upload a quick logo here I think I've got one here under pictures and I'll just look for a logo and if I do that I'll find our pragmatic Works logo and it basically uploads that logo there okay not important you don't have to do a logo or if you don't want to okay next one down is for power automate at integration to where we can add flows to it and then after that our list of all of our variables all of our Advanced tooling and then the ability to search and replace so I'm going to change all fonts to from X to y That's how you can do it and then this little hamburger here will collapse and compress it okay so most of the time you're going to spend in the tree view that's going to allow you to hop around and for today I'm going to use uh largely I'm going to use the uh the tree View and we're going to keep all the standard names like screen one screen two uh button one and so on and so on however largely in Maryland real world we would would change screen one to something like scr which represents screen and then welcome scr new request scr a fulfill requests and so on and so on make sure you don't ideally put spaces in these names though because it's a pain in the butt if you put spaces in it to have the right code against it so largely we don't want to use spaces in there okay so largely today and only today you can do this change this after we're done today but you want to make sure that you rename stuff after today to something more appropriate but for today so I can send code back and forth and so you can use all my code let's keep all the code the same okay now uh one thing we can look at here is I may want to do some type of theming around this so if I want to do a theme around this to where I have a standard colors you'll notice right now there is theme colors however you can't add your own custom theme as of right now at least like you do in power bi so we have to kind of create our own color scheme and our own colors around this to do this what I typically prefer to do is use a new feature this is brand spanking new maybe a few weeks old at a preview at least it was it was an experimental mode for a long long time so now what we can do is when I select the at the word app on the left side okay this is our tree View this today I'm going to refer to this as the property drop down box how you are going to forget it that's what I say property drop down box that's what I mean I may even refer to it as a thing I said you would forget about but when I say good you'll basically select whatever you want to select and this property drop down box will show you all the properties that are available to you additionally right next to it you'll type in your code here okay this will allow us to kind of put your code just like Excel and in that code you'll notice a little down arrow on the far right where you can drag you can drag it down you're going to get as big as you want they're also doing some extra stuff in here later that you'll love as well you also have your properties window on the right as well so you can change properties in the property drop down box or on the right over here I personally prefer to do it in the property drop down box because it's a little bit easier to find you'll also find as of this week we have chat GPT now integrated a little button up here at least in my tenant I do it may not be in your tenant quite yet so you can do things don't do this please I just want to show you for example here you can say like add three buttons hit enter and it will go out there and search and then find out how to add three buttons and then drop those three buttons and again don't do this because we're going to drop we're going to kill these buttons in a few seconds here there it goes there's my three buttons I can I can highlight them all and say make them uh dark green for example because they're highlighted right now it will then make the highlighted ones oh it's gonna be an error right now uh all right no problem I can say make the button green all right hit enter um so it does have it still is Brands make a new it is preview so it has some good stuff it can do and then sometimes it's not as good at doing it like yesterday I was able to change all the font out all the uh the button Colors by highlighting them all and doing them all at once but as you can see it it basically dropped three buttons in and it went ahead and gave me the ability to change the colors all right so chat gbt is coming to powerapps in the rest of the Power Platform all right so we want to do some kind of theming here there's a number of ways you can do it traditionally we would select the word app and we would do something called onstart this means when the app starts it's going to run a series of code whatever I put in here the part that's brand new is formulas I say brand new brand new out of preview mode at least and when I select formulas whatever code that is in here can be called On Demand so when I call this a variable here it will basically reprocess that variable at time of runtime or at runtime not design time so or not start time excuse me so this is a little bit more efficiently efficient it's going to make your apps load faster by then the onstart and it's a little bit I find a little bit easier because less steps inside of here so our first one I'm going to create a variable here uh I'm going for it basically a constant if you're a developer I'll call it Con for constant primary color I notice I'm capitalizing every new word I'll then say equal sign what does that value equal is I want to basically put a color in there to do a color I'll type in color values one way of doing it you can also do rgba as well as another word you can use we'll show you both then I'll put uh open parenthesis and then double quotes I will put my color inside there I'll do a hashtag my hex code is 0 a a nine uh nine f f but looks something like what you're seeing right there that's my first variable so if I want to refer to this uh this constant I would basically just or this funk this formula I would just put that word right there wherever I want to specify a color now I'm going to copy and paste a few colors here all right there we go and you'll find that copy and pasting inside the word doc this is on page seven of the word doc it looks like this right here at the bonus app at the bottom here so I just copy and pasted that into the formula section not important that you don't have my colors you can put whatever colors you want a few things a note here first of all you can refer to rgba colors that one is how translucent is a color dot one means it's almost transparent where one is not transparent at all you can also by the way click on the word rgba and uh well used to at least not in not not formulas looks like but uh in some areas most of power apps you can select the word and it will show you a preview down below of the color in that word it's not doing it here because it's not available in formulas yet but we'll see it in other locations okay so put whatever colors you want I created I'll zoom in a little closer here this is just comments so you know what I was adding here so these are not important right here you need to have you need to end each word with a semicolon that means run this then run this then run this the semicolon that you're seeing at the very end here with no line down below it is required for formulas so we got to end with a semicolon also again these double forward slashes not required in the slightest okay so the app we're going to roughly build the day it's going to look uh it's going to have kind of zoom in here it's going to have a gallery of data let me zoom in a little closer here we go we'll have a header up top we'll have a gallery of data here we'll have like request one request two and so on and so on then we'll have a form over here to enter a new request now we're also going to have the ability to delete requests or cancel them and we'll have the ability to only see my own request over here as well so that's the app we're going to roughly sketch out today to do this I use heavily containers and to start and they allow you to do a few things that are pretty darn snazzy they have some properties in there that make it make the apps look less cartoony and more more classic application Style so what we're going to do is we're going to add in our first container this is going to be our header for up top under the insert ribbon up top or the insert ribbon on the left either way search for container and click on the non-vertical non-horizontal container the one that says container right there all right now stretch this however you want to make a header make it as big or as small as you want typically what I use for content for headers is I use our UI components because they have a they've been bug tested they look really good and they're a little cleaner than this but in this case it works fine for what we're trying to do right now for the color on the right side you'll see a fill bucket on the right side if you click on the word color on the right side it is going to go to the right property right here so on your property drop down Box by clicking on that word right there right there it's going to immediately pre-populate the property drop down box for the container and then show you what what the color is right now see how it's showing that little color preview right there all right so in my case I don't want that color the rgba zero zero zero I want to put Co in and look at that it automatically finds the three colors that we have I'm going to choose my con primary color oh it's a bright blue isn't it there we go all right so there's our our screen our header menu right there we can also for the screen one you'll see it defaults to fill with white as a color so if I select screen one I can change that to c o n uh background color there we go so we got a little bit uh bluish tint gray right there so my my screen one color with Co and background color and then my container fill color with con primary color awesome so we have those two pieces now ready to go and then we can drop whatever we want to in those containers to make this work but here's why I use containers I'm going to first of all uh when I have container selected make sure that you have containers selected otherwise it'll put it somewhere else let me show you what I mean if I go here and I drop a text label one for example it's going to put it outside the container so it doesn't really belong to the app so make sure the container is selected then go to insert and select text label move it to wherever it makes sense for you expand it to where it looks a little cleaner uh make the font I'm going to call this you know merch request on the right side I'll make it nice and big like 25 font I'll bold it and then I'll make it white I should about do it there we go and I left enough space there for a low bill on the left and a pitcher on the right potentially so by doing that now if I move the container all right move the container it moves everything with it that's one reason to use these containers the other kind of cool reason to use these is now you have two new properties border radius to kind of curve the corners and drop shadow to create a little more texture in your application I'm going to change that border radius on the container to zero because I want hard edges in my case and I'll change the drop shadow maybe to how about semi bold let's see how that looks ah you may not be able to see this but it looks a little bit shadowed now right there it looks a little bit cleaner I think now okay especially as we have more on top of this it's going to look really really good okay so the drop Shadows are a nice touch I find so with the container now added I'm going to insert and I'm going to search for media there's my image right there I'm going to click on image put my logo there and I'll do image one more time and I'll move that right but I have my logo on the left my picture on the right what I'm looking for here is something like what you see right there or right there okay for my for my picture for my logo all I have to do is Select that logo and if I have something under my media section like I have here I can just change the image to use that if you don't have that no worries don't worry about it just leave it as is the sample image you can say it's a placeholder for later so you can make that however a lot and kind of move that to the left or kind of restructure that how you want and make it look as pretty or as not pretty as you want all right that looks pretty good of course we can remove that padding right there as well on the right side I want to put John's picture in there as our customer so for the right side for the code on that image up top where it says sample image I'm going to put the word user open close parenthesis Dot and look at that the user function gives me the user's email address their full name or their image and when I do that you'll see I get the same image I have in Office 365 now now this is going to work best if you say I want to make it an exact Square so I'm going to change this from fit to fill the square up now it's not quite a square yet so if I go down here for my size I can make it let's do 100 by 100 does that work oh it's a little too big let's go maybe 70 by 70. that looks better and then kind of move it wherever you want we can also uh go under under the Border radius just like you do on the containers and you can change it to 60 to be a full circle here so that now it looks just like office 365. so again my steps I hit the image I made it a perfect square 70 by 70. change my image position right here to fill change it to 70 by 70 and then I change my border radius right there to 60. we could have also made our our height and our width equal to something like parent dot height and that would have used the entire space inside that so I would hit the word height button right there and you see parent dot height instead of 70. that's another option for you as well all right so so far we got our header now done make sure that you save your application on the top right and make sure you save your application about every three or four minutes just to make sure there is auto save but you know how that works right anytime you want auto save to work it doesn't work right so and just because you save it does not mean your customers can see anything in this application yet you're gonna need to publish that application for them to be able to see this now check this out when you publish now you uh they don't have it right now for some reason all right no problem um what's happening is you'll have the ability soon I I have in my other environment this environment does not have it right now to take AI recommendations for my uh my descriptions so I can hit one button here and it would then apply AI recommendations for that right now for some reason it's not giving me this environment but it did this morning in my other environment so it's coming around the corner likely for you when you hit that publish button all right so now we need our gallery of data on the left side in our form on the right side just like last time we're going to use containers to do all of this so I'm going to go over here and do a container in this case I'll go up top where it says insert and I'm going to drop in a container there we go perfect now again let me just one more time to make sure everybody's on the same page here you want to make sure nothing is selected so if you have container selected it's going to drop the container inside the container so you may have to delete what you just did there so make sure nothing is selected and do insert and then container okay and just a regular old container not a vertical not a horizontal make this stretch how you want to occupy the left area that's going to occupy a q of all the requests that are out there let's turn that container where it says color let's turn it to White so it stands out a little bit more against that gray background okay it'd be a little tough to see right now but it is a slightly different color then you can also I'm going to make my drop shadow more semi-bold so it kind of stands out a little more there also so as they put our stuff inside of here it's going to be part have that that drop down that kind of that that kind of look and feel you're seeing right there inside there next select that container ours is called container three yours might be called container two and then do insert vertical gallery so insert and then vertical Gallery right there now Gallery is one way to show data inside of powerapps there are a few ways of doing it Galleries and then also uh you'll see over here if I go to insert again you'll have uh data data tables as well the beta tables are more of an Excel type view instead but galleries give us a lot of flexibility to show pictures to show a lot of interaction in that data icons and all that so I'm going to point this when it comes open see it came open and asked me what table do you want to connect this to if you're not getting that unselect the gallery and reselect the gallery and if you're still not getting it select the gallery and you'll see on the right side data source I'm going to select on my search for Merch and there is my merch request right there so make sure you select merge request not merch items give it a few seconds and then there is my one request hopefully in a second that we have already put out there so there's my r1000 right there now for my request I don't want to show a picture of anybody here I just want to show the request itself so I'm going to go by selecting the entire gallery again you can do it in the like in the preview mode here or you can select it on the on the left side by hitting Gallery one and I'm going to change this layout on the right side to title and subtitle by doing that it's going to make it where I only see the stuff I care about now so I don't see the picture now we're going to fix this r1000 after our break but as you can see here it's it's all ready to go we have things like a little arrow to select something we also have r1000 our request number and when was the record created so or what was it do actually looks like so we have those two those two things right there we're gonna we're gonna modify after our break so we have now make sure you save first of all and now that you've done that you are now ready let's do a quick break so we're going to do a break for about oh let's do five minute break I'm going to put a let's do seven minutes let's get us right till 12 35. I'm gonna put a break up in a second let's finish that saving and when we get back we should hopefully come on Save there it goes I'll put a timer up here and I'll put uh seven minutes on the timer get back go ahead stretch your legs get some caffeine because when we get back we are going to show you some more goodies some more forms and some more new stuff that you can do in canvas applications you have not previously been able to do so see you in about six and a half minutes well hey there again I hope all is well oh I haven't unmuted there we go cool uh welcome back folks uh this is Brian Knight again from pragmatic works let me uh get back on camera there we go uh and let me do this real quick all right there we go it's out of the way oh okay so uh welcome back folks this is a uh uh we we're so far what we built so far is a pretty nice looking application to uh to go through and do marketing requests as I mentioned before this is part of what we do with hackathons hackathons are usually a day or two where we teach you with your own business problem in case you care about looking more about that you can find the information right there usually about one or three days we do this for power bi power apps but again you're bringing your own problem we don't touch the keyboard we're teaching you how to solve these problems and future problems with that in our next uh alert with the Nerds event we have out uh Angelica excuse me uh talking more about the pl 300 certification the challenges you'll have with that certification and how to get around that also and then lastly we have our you can find more about our our season pass you can find at pragmaticworks.com and it includes a nerd box that we're talking about in this presentation the season pass it gives you unlimited boot camps live training our on-demand learning as well as one-on-one mentoring to help you get through any kind of challenges with this uh we also had some questions during break that I want to go ahead and highlight right now uh let's see what three of them start here the first question is from uh ready here how do I make a canvas app also responsive well great question there ready by default apps are going to shrink and compress based on what kind of device you're using however the real trick to make it where I can hide certain elements if I'm running out of space or show them if I have extra real estate is with those containers you saw earlier there was two other options for containers vertical containers and horizontal containers those will allow you to to to uh specify what do you want to show up and what should be the rule if I'm running out of real estate should I hide it should I Overflow what should I do additionally model driven applications are are automatically uh responsive from day one so it makes it way way easier thanks for the question ready let's go to our next one here our next one is how do I connect to an on-prem data sources from Howie and how to do that you'll need the on-prem Gateway it's the same Gateway they use in power automate Azure and power bi once you do that once you add the gateway to your uh two power apps uh to the make that make that powerapps.com you can use it for everything at that point you want to use it for it's like connecting any SQL Server database just note it will be a little slower because you're having to go through from the from from your machine to the cloud then back down again to the uh uh to the on-prem SQL Server so it might take a little time there Howie to get the data that you're not that you're not used to the cloud will always be faster in this case but it is possible next question in here is from uh somebody else here in the audience and a canvas how do I filter one table based on at column two kind of like Ros can you do that for sequels yes absolutely we're going to show that to you in a moment you'll use a filter command to do that and you can absolutely do that we're going to do that for our uh our our form on the right side the moment so absolutely can do that great question and then our final question I see here at least queued up there's been over over 200 questions here looks like is there a way to encrypt the the power apps code transfer from one to another account I assume you're meeting AJ is if you want to send that code uh uh your your application your tables to a customer maybe maybe you're a consultant can I make sure that nobody can change that code well we export my solution out we have two options managed and unmanaged if I export it as manage code I can specify in there it's like sending an installer in other words and if I send you manage code you are not allowed to change certain elements in that package I send you if I send you as unmanaged it's like sending you my entire Visual Studio source code in that case so you can change whatever you want to change so we're going to production in QA you always want to do managed and for going to uh going from Dev to dev then unmanaged if you are a contractor or consultant you may want to go manage your accounts uh to make sure that they can't change things and break things after you after you leave is up to you so a few things around is lots more around that um but largely that's how you'll do it if that was a true question that you're asking there AJ if it's not I apologize please just kind of reframe that slightly and I'll I'll answer that again as well all right cool so oh I I missed uh Jonathan would you mind hiding that one also there we go thank you so much John uh there we go cool thank you so much awesome so we are now ready to begin again our hackathon now we're actually a little ahead of schedule right now so so far we have our application now in there we have our Gallery ready to go what we have left we have a form to add we've got some actions on that Gallery we gotta clean up the gallery we gotta add our form we have to make get the ability to edit a record and delete a record and then optionally at the end if we have a little extra time which I think we will we'll show you how to move this to production and we'll show you how to put this on a web page also so we're going to show the entire power app stack from a canvas to a model driven and potentially a power page if we have time as well all right so let's begin back in where we started off at uh so far we have our gallery now in place and there's a few things you may want to do on this Gallery like for example this is r1000 that doesn't do anybody any good right now so instead of showing r1000 I would want to show the customer's name that I want to send this merchandise to and the due date underneath it so if I if I look up top when I select r1000 a few things to note if I had multiple records you would make sure that you only select the first record the first record is your template and as you move stuff around it moves a template around if you select the second record or where the second record would be it selects the entire gallery and as you move this it moves the entire gallery around so you want to make sure that when you slip the first record that is your template and you can kind of move it wherever you want to move it so the code is up top so notice I have a the r1000 selected you'll see I'm looking at my text property and it says this item dot request number this item is the row number and row name and this row excuse me and request number is my column name so if I get rid of the word request number there's single text around it because I have spaces in it I'm going to get rid of that dot and when I click my type in dot again under this item it shows me all my columns that I have here I'll select contact this time and notice that when I select contact I'm getting an error right now well this error is hover over it what's happening is it's expecting a text value however we're passing it a table instead so when you type in a lookup column for dataverse or for SharePoint for example it's confused right now it doesn't know hey well can I what column do you want from this other table and I haven't told it what column I want yet so what I need to do is I need to go in here and hit dot again and there's all the columns from my contact table so without having to do any type of joins at all it is automatically making it where I can go and navigate through my my referential Integrity go from one table to the other table and get the contacts information like their full name there we go so I put in I typed in f-u-l-l and I chose full name so it should look like this this this item dot contact dot full name and again just to make sure I show that again I'm going to get rid of the DOT and I type that again as I type in f u l l it should hopefully find full name I can then click on full name or hit Tab and it will complete that operation for me okay so there we go well I'm not sure why it's giving an error enough so literally the same code I just had in there all right is there a space there dot full name here it goes my same code I want to show what happened there all right for the due date my customers my marketing team our sales team may be a little confused but that date means right there so what I could do in front of that is I'm going to put a double quote type in do colon double quote again and Ampersand so if that helps if I helps them I can then see you know why is it why is it due there so you can see that it looks like it looks due on this date looks pretty good now so our first record is now ready to go you can see that Jim is do something on this date we don't know what something is yet we'll have to select the record to actually see that we can also make this searchable and all that additionally we could drag this and make it fill up the whole screen uh if you want alternatively like if it looks like this for you right now alternatively you can look at the height property and make sure it's dragged up top of your container you can get rid of 512 412 and type in this is back to the question we had from uh the push about responsiveness you could type in parent dot height parent is referring to the container because look at this hierarchically parent is one level up the container so it says whatever the height of the container is let me go ahead and adopt that height and put it there parent dot height of the container would be the screen so you can kind of navigate up the hierarchy by doing parent dot parent Dot and so on up up the chain okay you can also do like app dot height to nap dot width as well okay so this is actually taking up the whole area now so I just had to make sure I drag it up there I did parent dot height to make that happen that's completely optional though all right with that done I think we're ready to go for our form now so for our form on the right side I'll make sure I have nothing selected I clicked in the white area so nothing was selected other than screen one and I'm going to insert another container so again I'll search for container I'll move that to maybe like this have it occupy my right area and I'm going to leave a little bit of wiggle room here so it looks like I've got some some uh some some gaps around it I'll make this also White give that a few seconds there it goes and then I'll put a drop I'll put a uh drop shadow on that of semi-bold and then I'll also do a radius of this one as well but put a border radius and a 20 on that one that's going to kind of curve my edges as you're seeing right here so it looks a little bit more like a a side container potentially all right so it looks pretty darn good of what we want to accomplish right now so with that now done we have our container now ready to go I'm going to drop our form into this and then when I start wiring stuff up now make sure you save and how do I get to try this first of all well you'll notice that when I hit this play button in the top right it previews the application and back to the question about responsiveness we can try this in different types of devices like what would this look like on an apple right now what would this look like on a mini and you can see the device screen is a little bit smaller a little bigger and but so far it's looking okay what what kind of apple uh Apple phone here in this case or an Android phone so you can kind of simulate different types of phones and how is it going to look like if I Orient this different ways here also too narrow this is where the the responsiveness can uh can work better if we do the other the responsive tabs uh containers versus this okay so you can kind of simulate that or you can say within a browser if you hit the Escape key or that little X right here it will leave the preview mode and let you do that also okay question here from Yoon is it possible to filter what's shown in the gallery say to only to what is past due absolutely you so let's try that uh let's answer your question plus so another question we had a little bit earlier also so the question was how do I filter this gallery to where I only see things that are due after today perhaps or do you know do before today or whatever so to do that I'm going to select my gallery my entire gallery so make sure it's select you can do it on the left area or pick somewhere in a white area underneath gem Glenn then I'll go up top where it says height and I'll go to my items property of that right now it's saying hey you're only showing all requests and you can hit the down arrow right below that unit and see that you have one record if you slide the right here you'll see that record over here now how do I filter well if I select in uh oops let me do that there if I pick in front of merch requests and type in the word filter open parenthesis it's going to let me see all the the uh it's going to start filtering this data forming so to hear a question I could do a comma there and then you go see there's my due date right there we're going to filter and say due date is greater than today open close parenthesis but I also maybe want to say hey I want to find out um who created a record so I go by created by this tells me who created the record now this is the question we got asked earlier also how do I filter this table based on another table this created by is a lookup a foreign key pointing to another table so if I say created by Dot and it's going to show me all the columns for this other table this is the user table if I type in primary hopefully there's my primary email right there all right I could say find the person that created the record find their email address and I only want to show records that are equal to and if I type in user open close parenthesis like you saw in my picture earlier I can get their email address close my parentheses and now I'm only seeing records that I have created okay we can also do hard Security on that as well to where we have a security mechanism to only show my own records so you into your question to your excellent question there you can use today open close parenthesis to show today's date only filter things that are greater than or less than or equal to today's date to the question previously this is how we can also filter based on a foreign key to another table on a column in that other table so hopefully the answer is two birds with one stone there this is also this command that I just did right here is also in my word doc you'll find right there at the bottom it's on the optional enhancements to our application okay so if in case you're curious you and I type too fast you can absolutely do that this again this created by here is a lookup it's a built-in lookup to the user cable the user table shows me anybody that has a license to use my application all right so for this container on the right I'm gonna go to my insert ribbon up top and I'll look for an edit form there we go I'll move it top right or top left and I'll kind of I'm going to leave a little bit of room at the bottom for my two buttons my save and my cancel button so leave a little bit of room there for yourself and then make it nice and wide there as well once you have that far again just to make sure I show that more time I hit the container and I did insert and I have uh edit form my form's name is from mental note is called form one and make sure it belongs to the container because it's gonna make things a little bit easier to kind of manage then on the while you have that form selected look under container and it says data source I'm going to point that data source to merge request now watch What's Happening Here by the way as I pointed the Jim Glenn here our fake record I go to our database icon I can see that it actually related to the contacts table when I answered uh yoon's question it pointed the users tables what's added those tables automatically to my left database icon so pretty handy now this form that it added did not give me everything I wanted it has request number it has created on has a bunch of junk in here that I want to fix my easiest way to fix this is to go to the right with a form selected and hit edit fields then I'm going to get rid of request number leave due date I'll leave um I don't want the fulfilled item because this is not marketing using this this is my sales team using this so I only left due date there then I'm going to hit add field and I'm going to check account contact uh let's see here merge item that the sales wants to send him and merch notes and I think I've got it now I should have uh so here it's one two three four uh that's five yeah so I'll hit add now once you add those you'll get some errors for a quick second then it goes away one thing you can do if you want to kind of rearrange things you can hit the three dot right where it says add Fields collapse everything and then you can move things around like so for example if I want uh merch merch notes up top I can just drag and drop it and it kind of re-shifts things around that's completely up to you on where you want things your application guys can look completely different that is okay all right and you can also by the way when you're looking at things like um merch notes Here notice you can change this to have things like you know Rich Text editors they can have a word processing engine like a small Checker and all those kind of things I'm not going to change anything inside there I kept this order myself up to you guys and I'm going to hit the close option right here on fields now I'm wasting uh I have a lot of real estate I could use and I'm wasting a lot of it so I'm going to change first of all my my number of columns right here to One play around with it and see what you like I chose one so I can fill that space up but you can try try a few things to see what what works for you there I think that looks halfway decent but completely uh what you wish there all right then I'm going to drop two buttons in down here a save button and a cancel button to do that I'll go to insert and you should see button right there and I'll go to insert oh and notice I what I did wrong here I was not in the container when I did that so I'm going to delete that button select my container make sure it's your container not your form then do insert button insert button now these buttons cannot leave the container I can't drag those outside they are they are bound and and uh they will always honor the container at that point now color of these buttons however you want my primary button here I'm going to go to my my fill color of that primary button which is right here for that button and I'm going to change it to con accent color perfect hey that kind of gets a dark blue color for my other color I'll just use this little fill bucket here and make it dark red do whatever you want though I'm going to call my red button on the right here where it says text cancel my other button I'm going to call it save perfect the one's called save one's called cancel and color them however you want doesn't matter what you want to do there it's not going to hurt anything in the slightest okay so we are almost there with this application believe it or not we're rocking and rolling make sure you save guys and let's start with the easy one first let's start with that cancel button so for the cancel button we have to do a few things on that we want to make sure that when it cancels that it resets the form back to square one so any default values get reset out this is a good practice and then we're also going to reset the form back to New mode what I mean by that check this out if I hit the play button right now the form is not in new mode it says no item to display what that means is this form is can be in multiple modes see when I slip the form it says default mode is edit mode that means it wants to edit a record and it's asking well what record do you want to edit that makes no sense to me at all so we would have to change this in edit mode to new mode so again if I hit the play button rights has no item display meaning I haven't told it what record to edit if I instead change that form to new mode and then hit play now it has it it's ready for a new record not for an update we'll come back to edit mode in a few minutes here also as you select this notice that as you hit play we got our we got our data now these buttons do nothing at all right now we're about to fix that you can change the hover colors and all that of course also okay so for our cancel button we want to reset it and then also put it back in new mode now why is that well anytime we save a record even if we're in new mode as our default way it is going to revert back to edit mode so we're going to force it that when we hit cancel or when we hit submit to stay in new mode ready for our next new record so I'll select the cancel button and right now on the on select of this cancel button you see faults false means that nothing happens when you click on me so I will type in new and look at that it writes a code for me hit tab hit Tab and then close it all done then I can do a semicolon saying yeah do new mode and then also reset the form here we go reset form tab tab close all right so it's going to reset the form and set it to New mode one two punch here so cancel button is now ready we of course can have multiple screens and have it navigate to another screen when you hit cancel to go back to the list we're keeping this really simple because we only have three hours to build two actually maybe three applications we'll see all right for our save button just as easy as the cancel button when you click save look for your on select of the save then we go to faults we'll change that to submit form tab tab close parenthesis so we're submitting the form and it's asking well what data do you want to submit form one so what happens when we do submit form if the form is a new mode it's going to insert a record in the database if the new form is in edit mode it is going to edit the record that's been selected in the database there's also ways of sending data to the database called patch patch can also work and Patch will allow you to be more specific about how you want to insert that into the database so either way works like a champ all right with that done we can go and select that now what happens next we submitted our data the database however what we have not done is you know uh gone through and do extra steps like clean you know setting the form back to New mode and doing all that kind of stuff when it told the user the record has made it yet so to do that we could put a semicolon here and chain things together but as a best practice what I want you to always do it's not a whole lot of always rules and Technology but this isn't always rule what I want you to do is when you select the form make sure the whole form is selected what you'll do is you'll go into your property drop down box above me right now well there we go and look for the on Select Property also all the success property excuse me the on success property means that what happens if that row successfully makes it to the database you may have seen there there's also an on failure and on on reset all the other kind of motions also you can do if it successfully does that so if the row successfully makes the database we're going to fire the code that you see right here so why separate that well if we don't put it here if an error happens we would never see the error message it would have reset the form back to New mode told us things are happy go lucky and things have failed I put it in here if an error happens we'll be able to see the error message and start to diagnose that error message as a user so in my case again I'm on the form on success and right now there's two things I want to do I'm going to notify the user if I did a good job I'll hit the word notify then double quotes I'll put uh Bravo I see a new request or whatever you want to put in there OH Close Your parentheses quite yet because there's a few more things you want to do we'll do a comma after your double quotes and of course you can put an ampersand there and you can you could say new request for and and then do an ampersand and say you know uh show me the last record submitted we're going to leave that alone right now and then we'll do a comma and as you type in the word success look at up right here it says notification type this is saying that it's giving us a clue that as I type in success that it's going to give us notification type dot success all that does is make the bar up top green to say Bravo great job you can also do notification dot you know there's errors there's warnings there's information messages and so on and so on after we do that we'll do comma and now you'll notice up top in the Bold how long should this stay open I'm going to type in 2000 which will give me two seconds of play time before it goes away it automatically shuts down then I'll do a semicolon saying show the notification for two seconds and then reset the form back to New mode again here's my code I'll zoom in a little closer here for you and so the new form again is going to make sure it's going to revert to edit mode unless I do that new form right there so what this is going to do is going to show the little bar for two seconds go away and then reset the form we can put this in whatever order we want to this could also be navigation code right there that's the word Navigate to navigate from point A to point B so this allows us to do a whole bunch of stuff here let's go ahead and save that and while we're saving I see a question coming in when I create a lookup table what name is used for the related table display name physical name primary name column great question so if you want to do a lookup column like we did earlier you'll notice it's going to use a display name by default when you're using a dataverse it can also use the physical Name Behind the Scenes like PW underscore whatever column name also so you'll use uh like for example if I go up here and I want to do a lookup against this for example I don't do this guys I'll type in the word lookup and if I type in the word accounts notices give me the the display name for those like merch items our merch request so it's given me that the display name to use there uh inside that hopefully they answer your question and I appreciate that also awesome Okay so with that now done we have our rough sketch of the app done make sure you save and then let's play this application now we can of course default this to a new date so for example if we want to default that due date what we can do uh and you can feel free to do this with me if you want you're going to select due date you'll right click and say unlock that's because Microsoft has controlling that field until you unlock it saying I want to do this myself now now this becomes a custom card that you control not Microsoft so once you unlock it select that date picker and you can put whatever you want to in there so for example you could put today open close parenthesis and now gives me today's date and if I do like plus 30 it will default to 30 days from now so by default it will always have 30 days you can also make it read only with a salesperson does not control this to make it read only I would select the card see this card that's around this I would slip that card and then I would where it says display mode right there I'm going to click on display mode and change that from parent.display mode to display mode Dot View and that basically makes it view only or display mode dot disable whatever you like the best you can control that again it's only if your rules require that so you don't have to do those last steps if you don't want but it makes it makes the sales person have one less step to work on now okay all right let's play this app again let's see what it looks like now looks pretty good I think uh we'll select Brian ink now you notice we have not done any filters right now to limit these contacts to Brian ink that would basically be a filter command like we've been using to say only show me the accounts for always the contacts at this account it's not not very hard to do it's one line of code so I'll select Jim Glenn again the merch item that Jim's going to get is going to be our learn with the Nerds XL t-shirt and I'll make a different contact let's go ahead and go with uh Yvonne here sample contact blah blah blah and then I'll hit save now watch what happens when I say right right one two gone and again do the same thing again uh Brian Inc I'll hit pick this person right here I'll do whatever product a is save and I'll do one more just for good measure here I'm just kind of playing along here and this time I'll go ahead and say he's gonna get a shirt also blah blah blah and hit save there we go now we can see the different records here as we kind of see it's like this Arrow nothing's happening yet we'll fix that but nothing's happening and in a moment we'll show you how to address that now as soon as we've done that you'll notice that in my other application you don't have to do this my other application though which is right here if I refresh this I have four new records so everything's starting to come together the marketing team can look at this and start to process these requests if they wanted to right now also where my sales team can see what the status of these requests are and my my sales my marketing team can select the request and see Brian is the one that created this request and here's all the information for Yvonne or whomever you want to deploy it to okay so it makes it where it's super easy to kind of tie this stuff together let's go back to our application I think it's uh let me find that application again there we go okay so we got a lot of good stuff inside of here but I still need to be able to edit a request and see that request and I also need to be able to remove a request if the customer has made me angry and I want to get I made a mistake or whatever right so we need to do both of those things right now so my first step I want to go ahead and do something that you may not have seen yet this is really cool so see this arrow that you have here just to remind you again the first arrow is your template As you move it around every arrow underneath it will move around also my second Arrow selects a whole Gallery so every row but the first record is is uh is your your every row but the first record is the gallery and your first record is your template so what I'm going to do is I'm going to change this right arrow here to a I'm going to actually get rid of it all together let's just do that let's do something really cool here I'm going to get rid of that Arrow all right and then I'm going to select inside of this now for a second here I don't want you to do anything for this next few seconds here um well what I'm going to show you here is a new control this control is called a tab list this is why we added the modern control list earlier So This Modern tab list you're seeing right here you'll go under a tab list to do this if you don't see the modern one again you have to go to settings go over in case you've been fast forwarding me go over to upcoming features and look for modern to get that so if you don't see it that's how you get that modern control but I'm going to go over to insert I'm going to type in tab while I had the first record selected so make sure the first record is selected now now go ahead and play with me now the first record selected I'm going to insert a tab list boom all right now it looks like it's occupying a lot of room here let me show you what this looks like normally so don't don't do this one piece here okay I'm going to kind of shrink this down about like this for the time being okay but don't don't do this quite yet okay so hopefully you have that tab list in that first record so every record has a list of tabs inside of it so if I were to go and insert the tablet again and don't do this part and I'm going to point some random table here here we go notice that I get all these tabs right here this is what the tab list gives me where I can kind of flip around and see the records as I hold down the ALT key I can kind of interact with the app or as I hit the play button I can interact with this app also so by holding the ALT key or the command key on a Mac it lets you click on the buttons but watch what happens as I shrink this down as a responsive control look what happened I got all dot dot dot and I shrink it down even more oh there it goes I have a dot dot dot that's what our goal is going to be is to create a dot dot dot like this and then get the records like you see right there okay so we're going to create a drop down list basically so for this first dot all right right here you'll notice on the right side it's looking for a table that you want to go to now get back engaged with me let's have some fun again so select your tab control in the first record only up top it says items top left and you can go over to items and you can go ahead and click inside there if you want also so go to your code for that little tab control in that first record now we need to provide it a list of tab names we can point to a table we can point to a collection which is a array a memory or we can create a table that's just a temporary table for ourselves to do that we'll type in the word table open close privacy and inside that table there's no records right now see this right here this has nothing inside of it so we can do an open close curly which represents a record okay now we see 1033 right now and and so on same tab list over and over and over again inside the curly braces we'll type in uh tab name colon and inside double quotes here we'll put what we want the tab name to be so for example we could put the word uh edit uh then we can also grab the curly because the curly the curly represents one record see right here tab name edit that's one record there if I want two tabs I can do a comma and then put the next one and change that one to delete so it should look something like this when it's all done that creates a temporary table with the word edit and the word delete as our tab names now if you want to get really fancy here you can also put icons in there I don't know about Max but on a PC I could hit the Windows key Dot and that opens up a list like this of I of icons of emojis and for my edit I'll pick uh a pencil maybe there we go I'll type in pen and I'll click on whatever edit icon I want there we go for delete I'll hit into the double double quotes there I'll hit the little Windows key Dot and then I'll look for maybe a trash can or a cancel or something like that there we go like that X there there we go so again this is your application you don't have to do that you don't have to put these silly things in here like this or the icons in here or it's completely up to you okay I kind of like it but many people may not like it so then when I have that first little dot dot dot selected you'll notice that right now it has these numbers on it that's odd so what we can do is with that with that first record tab control selected on the right side where it says edit I can click the fields edit and I'll add what field do I want to show as a tab names I want to show the tab name and I'll hit add now when I hit the dot dot dot you see our two controls here edit and delete now neither one of them do anything right now but at least it kind of gives me the code I can start to build on now all right pretty nifty right so now we're going to build some code that's going to edit that and delete that let's start with the delete first and it's a little bit easier for us okay so to do that I find that this little dot dot dot button is is a pretty shared language that most people understand so when they they understand that dot means there's something underneath that so that's why we typically use those so for this dot dot dot I will I would recommend that you copy this line of code right here out Ctrl C it to copy it for my item the reason having you copy it is because you're going to use this pencil edit pencil delete and in just a moment okay so I'm going to go ahead and grab that line of code then I'm going to go to the on select of that dot dot dot of the tab list and then I'm going to paste in my code here and I'm going to comment it out two forward slashes and then right below that I'm going to start I'm going to create a little more wiggle room here we're going to go ahead and see how we can use this code so our first step is we'll type in the word we can use an if then statement but if we have more than one record for example we might have you know uh dozens of Records then the switch command makes more sense and if then if then makes good sense for uh you know two conditions or three conditions maybe but for I'm going to kind of get get used to doing a switch command in this case just in case I have more than one this example was from Reza by the way great job on this I want to make sure I give a shout out to him uh because this was an awesome uh UI trick that he posted a few a few a few days ago so I'll use a switch command and I'm going to say switch uh now I want to find out what they selected so I could type in tab control whatever or I can type in self self means hey what item did they select so self Dot select it okay I could also type tablets1 dot select that's the name of my tablet see it says tab list one I can do as well so self dot means whatever I clicked on that the button I clicked on whatever they did whatever they selected so self dot selected Dot tab name if it's equal uh sorry then so to evaluate what was clicked on comma if it was the word edit I'm going to copy this right here so I want you to copy and paste it if it was that then comma we're going to do some code right here okay so if it was edit then let's go ahead and change that form to edit form one all there is so making that form ready for editing a records all right comma what did they do delete form let's go ahead and grab that from from a double quota double quote here we go so if I select delete comma what is our Command for that one well I want to remove the record okay from what table from the merge request table make sure it's merch request and not merge items the number one mistake that people make there all right and let me go ahead and put a few enters here so you can kind of see this a little cleaner here all right the spacing does not matter by the way I'm assuming it's going to be a little cleaner for you guys to see this I'll zoom in a little closer so you can see as well all right so for Merch request if it's someone removed the record from the merch request table what record do you want to remove I'll do comma uh this item this item refers to the row that you want to delete I need to close parentheses for that and a close parenthesis one more time okay optionally between those close parentheses you could say hey just in case for good measure I'm gonna do a new form form one also it's up to you if you want the form to revert back to New mode just in case it's completely up to you as for good precaution I'm gonna do that just in case okay so one thing you can do is you can hit the format text and it will kind of clean your code up so it's a little more readable here also okay let me kind of skinny that down I'm going to share that and now you could get rid of that commented text there if you wanted to but what this is saying is hey look evaluate what item was selected for my tab and that if it was the edit button then edit and change that form to the right of me to edit mode if it was the delete button then remove the record you could also pop up a box to say uh hey are you sure you want to delete this record you could do a whole bunch more stuff there you'll use variables to show and hide things like that uh and then optionally we did a new form after that so essentially one neat thing about powerapps is when I select this close parenthesis you can see who's who's it's married to right here so you can see that's highlighting this guy above it as well Let's test drive this bad boy I'm gonna hit the play button then I'll look at uh Yvonne's request here I'll try delete and gone sweet I love it when a plan comes together right now the edit button I'll hit the play the edit button and uh oh no item to display what in the world is happening here but what's happening is as I go through the edit process like this it is it is the form is an edit mode but again it doesn't know what row to edit so just to finish this puzzle we're going to select the form over here we'll then go to the item property this item property is only used when the form is an edit mode for that we'll type in something like Gallery one which is a gallery on the left there dot selected edit the row that was selected in the gallery on the left so now let's play that app all right now we're seeing the record we can make some changes now I can say no it's not Yvonne it's going to be Susanna and I'll hit save and now watch Yvonne turns to Savannah and it's back in new mode again again we'll go back to that Sydney here hit edit and now we see Sydney I'll change that well the due date is now 99 and hit save notice it's not letting us change that due date that is on purpose right now based on the requirements but we could say hey if you're in edit mode show me the old due date if you're in new mode allow me to do this we could put some catches in there like that if we wanted to so this looks pretty awesome though so as we go through again delete works perfect edit's working I can also add new records here blah blah blah looking pretty clean right so this application was built in under uh under two and a half hours right now you have built two and a two and a half applications right now so make sure at this point that you publish your application top right when you hit publish it is going to save the application also and then hit publish agree there's some new features that are really cool that will let AI uh self-document that as well Okay so we're gonna go off script now for a second and definitely for this one you just want to kind of watch this for a second so here's a question we have provided the sales team an option to uh get rid of that there we go we provide the sales team a way of entering requests and the way for the marketing team to fulfill those requests well what if I want to provide a way to for the uh for the customers to request something also well how can I do that well Microsoft has a tool that interfaces with power with a dataverse called Power pages and what we're going to do really quickly here in our next 20 minutes wasn't planning on this but I think it'd be pretty cool example is to show the complete stack so you're going to see the ability to add a record through a web page instead now likely you're not ready for this yet you don't have a power page stood up we have a whole series on how to do this if you want or you can watch this video and create your site uh after the fact this is one of my favorite Technologies this is going to enable your customers who do not have authentication into your domain to interface with their own data in your domain so why would I use that well I might have a hiring portal where people are uploading their uh uploading their stuff or my sales team may not know the customer size shirt size and we send them an automated request saying hey I saw you signed up for our our season pass do you want to uh go ahead and and pick a size now they can hit the button it goes right to the web page they pick their size hit save and then it goes into queue here also uh you can also use it for things like onboarding of a new patient perhaps or lots of other examples you can use with power Pages you do not have to name every individual user that's interfacing with your website you only have to license the capacity for people to come in so I can license it for maybe 75 people a month uh and it could be different people each month coming in there's a very cost effective way for that price Microsoft gives you the website the database and the application so let's see how we can do that I've already published this application I'm going to open up a new tab and I'm going to go to make Dot powerpages.microsoft.com once there I'll make sure I'm in the correct environment which I am all right I'm gonna hit I already got a site created right now but in case you don't don't do this now but I can hit the uh I thought I had a site created goodness all right is it still loading I created one this morning I thought oh I think I may have created another other environment here that's okay I want to refresh one more time make sure I don't if you click create a site here I can pick a template of what I want choose a template I want give it a name of some sort uh you can make it a custom domain to where people don't see powerapps portals.com you can do all of that of course there's tons of templates you can do and then you hit done this will go out and start this the construction of that site and build it out for you unfortunately I built this in a different environment absolutely fine I will go ahead and drag that other environment down we'll still I did build this environment so site one is what I built already you see site 2 is starting to spin up now while that's talking while we're talking here there are a few questions here uh one from Alan how do I work with related tables in a canvas application scenario when I use a SharePoint list or dataverse so when I was tying uh you could see our other videos that we've done when you're looking at Gallery one for example it shows all the merchandise you can let me just to build a quick example here I'll show you what I mean here Alan all right so in this canvas app let's imagine I want to select um one of these I want to see what merchandise people are picking here I'm just going to throw in another Gallery here don't do this guys I'm gonna drop in a quick Gallery there we go and I'm going to say merch items this time so show me all the items that people can purchase all right let me do this on another screen here so I'll screw up this one here I'm going to build a quick new screen boom boom let me drop that in I thought I'd drop it I must have copied it there it goes here's all the items they can purchase Alan and then I'm gonna drop another one over here of all the requests this will be my merch request coming in here all right so if I interpret your question how do I select a item over here on the left and only see the request for that item so in this case what I can do is I can say filter on the right gallery do it comma and I'll say I only want to see where they request a certain type of item so I want to say look at all the quests I have a column in there called merch item I believe make sure you pick the singular version of it not the plural version this the plural version is your table and so if I type in merch oops I type an item for example I should find it there oh is it not finding it I forgot what I call there it is merge item so merge item and now here's a tricky part Alan I have to say dot what column do I want from that other table well I want the merch item table I'll get my the do it here it's a merch item again so merge item is my lookup column and in that table I want the good the unique identifier for that is going to be equal to Gallery two I think its name is Gallery three I guess here it is the gallery on the left here uh is not it gallery two yeah that's my gallery over here dot selected Dot and you should see merge item all right so what is this saying Alan it's a saying let me zoom in here I have a lookup column in my request table called merch item in that merge table there's a column called merge item that's my primary key my foreign key in this case now I want to compare that to what you selected in the gallery so give me the same guide in the gallery compare guid Global unique identifier to Global identifier and then I can then go and select these and you'll notice that some of them are disappearing as I select these and some of these are showing request one thousand one thousand one one thousand four and then nothing hopefully that answered your question there okay all right from Karen uh if you have a userets offline is a data available to be stored in local devices in sync later absolutely I have a video on that Karen you can find on our YouTube channel about how to do that so that allows you to as you can essentially go through and store it in the collection you can use things like save data to store it on a phone device and then and stream it up later for example we have a customer a non-profit in Africa who's watching these cameras on these um on this on these Refugee areas uh uh random animal Refuge areas so they're watching cameras and they basically basically as people go and maintain those cameras they're offline during that time so they go in and they they add all that data in and at the very end they hit save when they get back to Wi-Fi and it pushes it all at that point of the cloud great questions Karen and my other question there as well so meanwhile back in power Pageland I will go and edit the site now this is going to open up a site designer where I can go through and add pages add galleries of data add forms and the like so it is now 1 30. I bet you in about 15 minutes we can show some data and have a form to enter that data so let's see how fast we can do this now to do this notice copilot is now integrated in here as well where I can say stuff like you know add a new page and when I hit enter it's going to go out there and start to work on that forming or I can just hit this little plus button over here to add a new page okay this is a brand new site I haven't done stuff into this here but you can see in a moment here it's going to start to to do that now uh it can do theming for you can do all sorts of fun stuff for you I'm not going to be I'm going to be impatient here and it's going to let it go ahead and do its thing and and still work on time I'm going to cancel that task in the background that's this feature is actually I did not see this yesterday this brand new as of today so I'm going to add a page the manual way and I'll always call this uh merch request okay I'll pick a template for it get go all right then I'm going to say show me a list of all the merch request items that oh edit the page there okay this will take a long time to do that but I'll forgo that so when I go over to my merch request right here all right there we go I'm going to go ahead and do a list now and for that list check out what's happening this is a list of data of all the requests they may have done I'm going to choose a table and I'm looking for Merch request so it's the customer now and now let's know well what view do you want to show I would typically create a custom view for this where the customer only excuse the columns that I want to do not have time for that so I'll just go ahead and do this and then I'll hit done give that a few seconds and now it's saying it's gonna be some fake data and it's saying well I I see what you want to do but do you I have no permissions to do this so what I can do is I can hit the preview button hit desktop and see what this page looks like all right let's give it a few seconds to spin up this website here it's spinning it up now and now let's go into page not found for a reason here it's saying that hey you don't have permissions to see this page it has secure data on it maybe so if we want to we can go through and we want to turn on the ability to see some data it's taken forever isn't it goodness there it goes so it says page not found because I don't have access to the data underneath it so if I sign in that should help it I'm going to sign in we're up top here and I'm going to use Azure ad but you can also use Facebook LinkedIn you can create your own account here I'll use Azure ad for the time being and for the first time giving Azure first time and first time only either granted access to my Azure ID okay once it does that it's going to go away for a few seconds and Grant that access inside of azure ad or intra whatever you can call it now here's my profile it does allow for multiple languages by the way and we're going to see a big old red error message in a moment here saying that we don't have access to any data right now okay so how do we fix that next well uh how we fix that I'm not seeing my Reddit error message it's okay but we can fix that I'm going to hit this permission button right here and I'm going to grant me access to see some data so I want to give me access to the merch request table I'm going to go ahead and select Global access means that anybody can see anybody's records don't want to do that contact means that you can see only your own records an account means that John and I can see each other's records because we work at the same company Brian Inc so those are the three ones you really care about I'm going to select contact access it shows me the relationship between one and the other so in my case it's the contact record then I'm going to say what can you do with this well you're allowed to do anything with that record and I want to say well what kind of security role must you have I'll hit new role and hey if you're authenticated that's enough but you could create different roles one for students one for teachers and one for the district for example so when I save that there we go I'm going to preview that again and let's see what happens okay give it a few seconds of refreshing right now it's purging the cash and reloading the cash now I'm not going to see any records right now because my contact record does not have any requests yet and that's okay we're about to fix that in a moment here it takes a little while if when you hit preview because it purges a cash cash each time so now we're going to create a a form to enter new request that final step I'm going to drop the follow me lazy here and drop that form right underneath it but we could put it on a new page also so I'm going to create a new column right here and in that new section I'm going to drop a form in now again we would ideally create a form for you know a form a special form just for the website now we can use AI here and build that form for us but in my case I'm going to do a new form manually I'll point to that same merch request table okay somewhere in here merch request there we go awesome and then I'm going to point over to the same form we created earlier and I'm going to say whenever you submit this it's going to create a new record on submit it's going to show me congratulations and I'm gonna turn off this this uh terrible captcha which was invented by the devil somewhere in the 1700s you can also allow attachments if you want and then I'll hit OK give that a few seconds model driven form that we created earlier so when I preview this time it's going to save when I preview and we'll then see the form that we have here now a good question from Kathy here while we're waiting for this this to load up here could I use a Microsoft form for the customer and then uh make requests that way now to Kathy to do that to have it save in the date of verse you would have to have a power automate that whatever it saves it then writes over to dataverse also so yes you can do it it would require some some love to make it happen is all uh Power automate love for some reason right now my preview is just not happy and well likely what's happening there is it is a permission problem but we're not running out of time right now I'm not sure why the preview is not working I should see some stuff uh we had some issues with power power pages today uh I am I am in let me try I'm waiting for this to kind of finish up the spinner right here there it goes and there's my form awesome so as I go through this a few things you're going to notice I don't have permissions right now to the account table so I'll get a big old nothing Burger when I load the accounts same thing will happen when I try to load the contacts uh it's because my contact record does not have permissions to these objects right here so I get a bill permission error right there so I have to go through and add permissions for all of these items right here for them to make that happen so pretty easy I would just hit the permission button right here I would then add a new record for accounts table will be called accounts there it is perfect the access is going to be um hey you can only see your own account for example so I can say contact access and then how do I get from this table there all right there's my relationship right there contact customer okay and then I want to allow you to read your own accounts again I'll add the role of you can only do this if you're authenticated in same thing is going to happen for the contact record also so I'm going to create a new permission again for contact now I would ideally mom and name this better than I am right now this will be the contact table this time there we go and that's going to be contact access and this one's an easy one right actually I can just do self access this kind but I'll just do contact that's fine and you're only able to see your own contact so I'll just do self access that should do it and you're only able to read and do a pen and a pen two I should have made a pen and a pen two last time also for authenticate and then save with that done we should be able to create new records now so when I hit preview we should be able to preview this one more time and then see our form over here we could do we can of course this is the same form we created earlier so we would ideally remove fulfilled and we remove like the all those kind of goodies here and when it refreshes I'm still waiting for that spinner to go away right there and the cash to clean out there it goes and once we do that come on power pages all right give it a few seconds here oh my goodness there it goes now if I hit the magnifying glass for account we should see uh there's no records displayed because my Brian Knight that's that that's authenticated in does not have access to any accounts so to fix that I can open up my model driven app we created earlier look under contacts we should see Brian Knight somewhere as a contact there there I am and I can associate him Brian Knight under account name to Brian Inc and when I save and close that I then have to reload my cash so back underneath um uh here again I can hit preview one more time and preview again that should then refresh my cache to it has the most recent recent data and then I should be able to see account and contacts there at that point all right so question here from somebody all right it's a question from um pranik here can we use power pages to Showcase power bi reports or dashboards what a great question let me finish this up real quick and go and select my record I should see Brian ink now I hope okay my goodness take a lot longer and low than normal he is so while this is loading uh to your question you'll notice that when I hit the plus button on one of these right in the middle here that if I if I click uh let me add a section here again real quick there we go you'll notice that one of the things you can do is put Power bi inside of it so yes you can do power bi and yes those can also be filtered there's my Brian ink right there they could be filtered to where a customer can only see their own data if you wanted to so if I click in there I can open up a dashboard and see the pragmatic Works dashboard there's my Brian Knight record what merch do you want I have not given me access to the merch table uh we'll skip that there uh I'm not going to set anything else here you'll see my record right here and when I hit save or submit we should hopefully see my record up top we'll give it a few seconds to do that it again normally it's only a sec you know a half a second to do that and there's my record up top and likewise inside of my model driven app there we go if I go to merge request we'll see a new request that just came in from Brian Knight on the portal so we've showed you three applications what great questions we've had also so I showed you how also to do things like the on the model driven app we showed you how to do some basic Cascades we should do Canvas application and we showed you a power page so if we go back over here again on your power page hopefully we answer your question about power about about uh the other side there so if I select power bi the first question is going to ask me is where is your power bio to report you have to enable it in the portal so to enable it it's super easy to go to admin Center to enable that if I click on that admin Center there's a one-click kind of enablement there for you it's turned off by default though and you'll notice it's opening up the admin Center and there's going to be there's two things you can enable here one is going to be there it is one is this is how you can administer the environment and on the right side are all my services power bi visuals and embedded services and SharePoint are all turned off in my pools the brand new portal right now so everything's turned off by default in my case all right hey John I think we did a pretty awesome what do you think uh I'm pretty impressed Brian everything looks pretty awesome here today ah sweet well what we can do uh uh let's kind of show just a reminder in case you uh are curious here this type of Engagement we do a lot of time where we we teach you with your own example and the inspiration of that example came from a customer this is a a quick a quick piece here you can kind of see um uh how you can look at you find us on a website at pragmaticworks.com and you'll see hackathons right there uh that's how we basically do this we teach you with your own own example in that case so again our next month is going to be Angela sorry Angela Angelica excuse me who's teaching uh a power bi data certifications and let's open it up for questions John if we have any questions that people are curious about uh are there anything you want to feature here uh there's a whole bunch of them wow we've been answering a lot of questions here yeah we have a question from Paul here uh uh John you want to help us here we're gonna add an uploaded item into the form so all right great question so as as you're asking guys while I'm answering these uh John is going to Star more as well so when you're looking at a form there was one of the options when I go to edit form was for attachments if I turn this on and you can give it a name like uh upload resume or something like that yes it does allow for multiple attachments you can say I only want people to be able to upload you know word docs or whatever and then when I hit OK there's going to be an upload button right here the same thing applies by the way in your canvas application as well as your model driven application for your model driven application it's super easy let's hop over there real quick and show that off real quick so when I go back over here again oh uh where's my where's my solution here there we go when I go back to my solution I'm struggling here John let me save that um you'll have to simply just check a box and then in your designer of the application I think I did that for Merch item didn't I so when I'm looking at that merch item form that we did earlier okay let me get my main form here for that all right this is a question from okay this is a good question here so uh when I look at this if I want to put a a image attachments those kind of things here at the bottom under components you're going to see a timeline right there if you select timeline it'll put that ability to upload documents right there you can I ideally you want to put into its own section you want to make it a little cleaner uh you can do things lots of stuff you can do there when you hit save and publish now your application has the ability to upload documents inside the model driven application uh now once I saved and published give it a few seconds I should be able to go back to my application okay there we go oh not that one not that one not that one Brian where are you there we uh not par okay there we go if I go to my merch items I can select one of those items and now after I save uh you'll be able to add stuff down below the reason why I can't I must not have checked it if I had checked it we'd be able to see that down below so just a reminder of where you would check that if I go back to my uh my table and merge item now look at the properties of that table we want to check that box enable attachments we can also go down and say creating a new activity and hit save creating that activity allows us to log phone calls and other things like that to it and then we open up our app once this spinner goes away here get that a few seconds okay and John thank you for answering questions today you've been awesome if I do a hard refresh control F5 or hard refresh there we go look at that now we have things with the little plus button to add notes we can also add phone calls attachments all sorts of goodies here so if I hit note I can go blah blah blah add my attachment right here and I'll point to an image of SpongeBob and hit add and add note and there's my that's my file right there great question there canvas application is very easy also if we had that turned on we can add attachments that way as well all right next question John uh here I'll read it out loud for you Dynamics is a model driven app I created some custom tables and dataverse I would like to add access to the data in them and the contacts or accounts detailed views is that totally viewable or do absolutely so if you create any kind of custom tables like right now I'm looking at my merch items table I could go to related and say hey show me all the requests for that merch item and you can see all the requests underneath it I think I'm answering the question if I'm not uh John am I answering that question right I think so yeah we can see the relationship between my table and the other ones likewise if I go to contacts I can find Jim Glenn and say show me all of Jim's uh merch requests that he has and there's his merch request right here again this is the fake record so you make sure everything about that's not a Jim Glenn picture there also otherwise YouTube will uh will ban this video here so make sure I let you know that all right all right what are the questions we have here John oh one more question I got asked earlier I'm sure is how do I move this from Dev to prod well when I'm looking at my solution right here back here or in the overview tab I can hit the three Dot and hit export then I can hit next and I can choose whether I'm going to if I'm going to QA or production I choose managed this does not let the person change the code if I'm going to development I can hit unmanaged what I provided you guys in the zip code is as in the zip file in the description of this video is unmanaged code where you can do whatever you want to with my code so once you do that you hit export wait about five minutes it gives you one zip file that I provided you also that then you go to the other environment go to Solutions and then you'd hit the import button so in my other environment here once I once I finally get there I'll uncheck something and you'll see import solution so for my solution I gave you guys you would do import solution browse out that zip file that was that was provided in a moment and then hit next and it's done that's all there is to migration of a solution John anything else we have here question wise and then we're almost out of time but no you didn't answer hundreds of questions in the background looks like we had uh gosh we had over 180 questions in just the first hour so uh thanks for uh helping us manage that John just got a few in here one from Quran I'll put on screen here is there a way to move the apps from one environment to another without creating it as a solution for a canvas app absolutely you can go to apps and you can select the three dot next to the app and you'll see oh uh here we go I need to find a canvas app here do I have one I have one right here hit the three dot next to it and you can export the package however that there's not a whole lot of always rules in it I would always always create Solutions it's going to make it easier for you to migrate it also makes it easier from an application life cycle management it makes it easier for your it team and it turns on features that you do not have unless you use a solution so solutioning make things way way easier to manage it turns on extra features and it's going to make your it team much happier same thing goes for power automate right yeah Power automate same thing yes all everything goes in that solution even for you'll notice here that if I wanted to for example I can create a um under my solution for my power my power a power page thing I can create a solution called uh Brian site for example pick my publisher oh not new publisher I will do a whatever publisher I'm already using hit and hit create now watch this I can also do this for a power page I can go up top versus ad existing and you'll see site and then I'll pick my site it was site one hit allow and it's going to bring all the web pages and all the images into that site so I can move it I can give that site to you in a few clicks also at that point all right it takes a few minutes to go and add that because adding hundreds and hundreds of files now what are the questions Jon anything else all right so I have one from Christian here I think you can get this one pretty well does the database of a Dev environment different than from prod well great question so uh as we go from environment to environment each environment has its own dataverse database and that dataverse database is is is Walled off so yes you have a different database in Dev and what you do in prod matter of fact every environment you see right here has its own dataverse database completely isolated if you do want to synchronize those you can synchronize those you would use things there's my there's my there's my solution right there you would use things called uh back over here again let me get out of here you would use data flows you hit more and you'll see uh data flow is right there and data flows allow you to synchronize data in the dataverse from nearly any data source so you can create a data flow and you'll see if I go blah blah blah you'll see um data first is one of the options but you'll also see SQL server and you'll see a SharePoint and all those kind of options here as well all right um let's see we have one from Kathy here any tips to point me towards in creating a project tracking budgeting time entry solution ah so that is uh something that we have actually we're actually building in our LMS right now our learning and management system and we have a class called app in a snap those classes we have one uh for project tracking time entry is coming up soon we have an expense report one John you built one for uh which one did you build you built one yeah for shout out applications so Kathy we're building a whole bunch of those applications ready made we then have a video that shows you how to build it and then the solution already ready made also you can find those at pragmaticworks.com you'll hit start learning and you can get a free account we have a whole bunch of training already there uh so once you hit start learning or log in or whatever uh there is a whole bunch of ready-made training there for you uh oh I'm gonna enter it right now and there's a whole bunch of free courses in there so you'll find those uh free courses just by going to courses and then you can filter that down to just show me the free stuff or based on whatever whatever type of material you want to learn there is one under powerapps uh if I go there and I search you'll see a whole bunch of there's there's John's right there the culture shout out for app in a snap right there good question Kathy there's also one for an inspection application and there's one right now project proposal and purchase application oh Kathy that looks like fairly similar to what you want yeah all right I think we're we probably have time for maybe two more questions um so let's see if we can go I'm not sure if this is the one you can go really quickly but let's see if you can just answer on the Fly here from ready how to upload and play one gig video file in canvas at model driven app page all right so for that upload you can change the the maximum size limit in there one gig is going to get expensive to store gig long files in dataverse what I'd recommend instead is either store it in Azure file storage and link to it dataverse or you can use like SharePoint if you wanted to both are possible when you upload files you can tell it I want to upload the file instead to Azure blob storage instead or you can use some like SharePoint to store that file but you'll notice that your file storage in dataverse is should be conserved it's really meant for things like PDFs word docs you know images and those kind of things one gig files are it can be done but it would be um uh you get costly to do that that's a simple way of putting yeah um let's see uh let's see the next one from the pomasso again uh with the push from Dev to prod for every new release fix patch version the step is to export and import then this supersedes the new version in prod is that correct absolutely now there's a new feature out now as well I'm gonna move this bad boy down real quick uh and if I open up this it's called This is called Pipelines pipelines when I'm looking at a solution it allows me to Simply look at this right here for example and say yeah I want to bring this over from Dev to QA to prod and pipelines require something called managed environments I'm going to build a video on this next few days but all I have to do is look at my different versions I have 1-0 in development 101 and prod hit deploy here and it's going to walk me through do I want to deploy it now deploy it later this is going to walk through doing the export and doing the import for me automatically and if I had prod in here you'd see Dev to QA QA to prod so it does it all for you it does require managed environments but yes if I did not do this I did it manually it does the same thing as the export and does the import and it will find out what what's missing between Dev and prod and it figures out what changes to make to bring it up to date to Dev at that point so if I had skipped a version that would work also if I go I'm going from 1 0 to 5-0 it will do all the stuff between there to make that work for me all right and I think we have time for this very last one from Christian so if I have the solution on a Dev environment and want to move it to prod those migrations automatically create the tables from the dev environments absolutely so when I that's the benefit of doing Solutions if I do Solutions it's going to create the tables create the flows create the power apps and any ties between those for me automatically so it really really simplifies things it can also do things like pop-ups for my administrators where it's going to ask them questions like hey do you um uh what is the administrator for this or what customer is this for you can ask questions to the it admin that will that will change the app's Behavior without having to go into the app or the flow or whatever great questions folks well uh John I think we're ready to party here so let's go ahead and go full screen for our end to end here hey oh here we go so thank you guys so much for joining us today a few notes this was recorded as well as just to remind you you can go to our website at pragmaticworks.com you can find uh that you've got this uh that the hackathon as well as uh we are we're half the next 20 days I think 20 days left uh we only open it up twice a year for our season pass learning which gives you unlimited classes unlimited uh one of our limited uh boot camps and you also get some one-on-one mentoring there also and our Nerd pack so that is uh that closes on the 30th you only have so many seats a year that we do that with we don't have enough capacity we open it again I think in December time frame so that uh in case you're curious is one price to get all you can eat uh from uh from a power up side uh from a uh LMS learning management system as well as our boot camps uh thank you so much John thank you for uh answering All Those Questions also today and uh let's end our session any other questions actually we have one last little thing we'll end with and that's our preview for our hackathon as well as our next session so thank you so much for joining us today have a great day hackathons can effectively make learning relatable for your team by providing an interactive and engaging learning experience the process starts with the planning session where we identify a small to medium-sized business need for a prototype following a one day training session we collaborate with your team in a two to three day build session where everyone is actively involved and by the end of your hackathon your team has developing new skills and you will have a working prototype to show for it [Music] laughs [Music] [Music]
Info
Channel: Pragmatic Works
Views: 21,069
Rating: undefined out of 5
Keywords: power apps, power apps full course, power apps advanced examples, power apps microsoft, power apps dataverse, power apps dashboard, powerapps tutorial, power apps copilot, it consulting tips, power apps beginner, power apps interview questions and answers, powerapps forms, power apps inventory management, power apps power bi, power apps responsive canvas apps, it consulting skills, it consulting companies
Id: Gx7xL8w2AnY
Channel Id: undefined
Length: 179min 23sec (10763 seconds)
Published: Thu Aug 10 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.