Next Experience Academy #16: Standard Record Page
good morning everybody and welcome to the next experience Academy today we're going to be talking about the standard record page we're going to go through some uh UI Builder and workspace information and first off we're going to start with a little bit of housekeeping well actually before that we're going to introduce our speakers so my name is Maria Gabriella Ooa perz weter I'm an outbound product manager on the platform web ux team I basically work to help you guys learn more about my products and they are next experience theme Builder and um UI Builder and workspaces joining me today is our my lovely cooworker hey everybody uh my name is Brad Tilton and I'm also an outbound pm on the platform web ux team covering similar products to Gabby and I'm excited to share about standard record page today thank you so much now let's get on to the housekeeping remember please use the Q&A for questions it helps me gather up the questions to post them after the session be sure to use the chat for comments again Q&A for questions and this session is being recorded and the slides and video will be made available at a later date these sessions are for you please take the time to ask Brad all the questions that you ever wanted to ask Brad it is a great time it's not just a presentation we'll be going into the product and showing you guys an awesome demo and we will be back soon our next session is going to be February 21st at 11: a.m. eastern we also have a quick announcement to make we're going to be merging with the conversational interfaces Academy the you may be familiar with this but we have a lot of live on service now events that are allies for a whole bunch of different topics I'll have a slide at the end of the uh presentation to go over that but the conversational interfaces Academy will be merging with the next experience Academy and the AI Academy so you know ourm are on the third Wednesday of every month at 11 amm Eastern and the AI Academy is every other Tuesday starting January 9th at 11:30 a.m. eastern my awesome coworker semi Uka here is going to be joining us about every other month um and we'll be going over conversational interface topics at those times the next slide is going to contain a little bit of a preview on what our years going to somewhat look like this is subject to change but you can basically see today's topic the next couple of sessions we're going to be going over what's new in Washington and then we're going to trade off between topics moving on from there so we're going to be showing you guys a whole bunch more information in this Academy for this year and I'm very excited for this change and now I'm going to go ahead and turn it over to Brad to begin our journey into standard record Pages all right so uh we will go ahead and start with uh the Safe Harbor uh we may make some for forward-looking statements uh and obviously don't make any purchasing decisions on uh what we talk about that's going to come out in the future uh because uh it may or or may not actually happen I do want to address uh a question in the chat um from matin about SRP being readon uh the page collections are not readon and we're actually going to show in the demo uh today how to add to the page collections um so we we'll go over that so we'll talk a little bit about workspaces uh and then we'll get into standard record page and Page collections uh so uh just to kind of set the the groundwork uh here uh we've got our next experience UI framework uh and on top of that uh there's really two different Paths of workspaces uh so we ship more than 50 workspaces by default uh and those are all the outof thebox workspaces and to edit those uh you can use workspace configuration which uh happens a little bit through uh the classic environment and then also UI Builder uh if you have uh app engine Studio access you can create custom uh configurable workspaces and you can use workspace Builder which is a part of app engine studio uh to help you configure those uh but you can also use UI builder for those so the important part of this slide uh is that our out of the- boox workspaces don't work with workspace Builder um they're mostly already configured anyway uh one other little piece uh of workspace setting the stage uh in uh for a long time agent workspace was the only type of workspace we had I believe we came out with it in Madrid or New York uh and it's an older technology it was kind of our first stab of workspaces um they are replaced by configurable workspaces so in Quebec we came out with configurable workspaces where you can use UI Builder uh spoiler alert they're a lot more configurable than agent workspaces which is why we were real creative and named them configurable workspaces um this is our recommended solution if you're going live with a workspace uh we absolutely uh want you to use a configurable workspace and not an agent workspace uh we're also uh starting to deprecate uh the different agent workspaces uh so that deprecation schedule is in the dock site uh if you look at the Vancouver documentation uh we will tell you I think up to two or three releases ahead if we're deprecating things and I think most of those workspaces get deprecated between uh Washington and xanad do um so now is the time to start looking to migrate from an agent to a configurable workspace uh where do you get started with a workspace um so uh we want you to start with our configurable workspaces that we ship we're shipping more than 50 as of Vancouver and most of our product lines have a workspace uh CSM HR uh itsm itom they all have um they all have workspaces at this point uh service operations workspace is a configurable workspace um so that's what you should be using for any itsm or itom use case uh and we we do want you to do that if you have a custom app use case uh you can use app engine studio and workspace Builder to build out your own workspace um if you have uh number three is an edge case um so if you have a custom app use case but you're not licensed for app engine Studio you can create a workspace from scratch uh and we did an academy um in the fall or I guess in Q4 of last year uh where we went through how to create a work workspace from scratch it's a little more difficult and there's more work involved some workspace good practices here uh before we get into standard record page uh every workspace has its own documentation I think we had a question about the repeater component and uh service operations workspace there's actually a bunch of repeaters that they use um but if you want to update the landing page of service operations workspace it works a little differently than some of the other workspaces uh and so you should always go to that specific workspace as documentation uh before uh you know and not just assume that everything works the same so we've got different application engineering teams building out these different workspaces uh and they're making decisions on what's best for their customer base so uh you know an agent using CSM may work a little differently than an agent using incident uh and so those workspaces are going to work a little differently as well so look at that documentation uh a lot of our workspaces also have guided setups uh and so you can use guided setup uh to um I should have closed all my messaging apps you can use guided setup uh to uh configure these workspaces and we want you to extend those workspaces so you can create new pages you can create different variants of existing Pages all within these outof the-box workspaces um so you cannot clone a workspace can't copy a workspace we want you to use our outof the-box workspaces so I think I've said that enough time now enough times to where it should drive home all right so what we're here for today is a standard record page and Page collections uh we're going to be mostly in service operations workspace today uh with the uh standard record page uh but at this point most of our major workspaces have uptaken our standard record page function functionality at this point and I'll talk talk a little bit more about that um in a bit so when we talk uh standard record page what we're really talking about are presets and controllers um so presets and controllers uh this was a concept that we introduced in the Tokyo release um so about a year ago a little over a year ago we uh we introduced it in Tokyo and what it is is a preset is basically just a preconfigured or a pre-built config configuration for a component um so in the screenshot here we've got the heading component and one of the pieces of feedback we heard with configurable workspaces when we released them in Quebec um was that uh forms were really hard to build so if you wanted to build your own form instead of using a template uh they were kind of hard to work with because so many of the form components uh have kind of complex data binding uh and generally you're always using using these components with the same data resource and binding the same things uh so we came out with preset enabled components so a preset enabled component uh when you drag it on onto the uib canvas you get the option uh you see here on the right to select a preset and when you select a preset it's going to go ahead and map uh outputs from your data resource automatically into the component uh and it will also configure events for the component uh as well uh so it's a way to kind of reduce the the time it takes to build out some of these Pages um you can override these presets so if you scroll down where you're selecting a preset you can say none uh and then you can uh you know configure the component yourself um so you're not tied to uh presets with a preset enabl component along with presets we came out with controllers uh so controllers are a way uh are a new type of data resource and controllers go with uh presets so uh when you add a preset to a page if you go when you add a preset enabled component to a page if you go with the preset uh it'll automatically add the controller to the page and do all your mapping for you um so uh they get automatically added uh and then we're going to work a little bit more with a controller in the demo today uh so again uh you don't have to use a preset if you have a preset enabled component you can just tell it not to use the preset and then once you have a controller on the page and you go to add a component uh we do highlight all of the preset enabled uh components that'll go with that controller uh so you kind of know you know if I drag this onto the page it can be automatically um configured uh so presets and controllers so what do presets and controllers have to do with with the standard record page template um so standard record is a template that we have and if you use this template uh you're going to it's going to be using controllers and presets uh on the page uh so at this point most workspaces are using uh the standard record page template uh which is nice and we we'll go into a little bit more about you know what's nice about this template uh and one of the things is that it uses the uh the tabs component uh so if you um if you use that standard record page template uh you're pretty consistent using tabs everywhere instead of the older contextual sidebar component and and the older tabs component um so you're using the new tabs component for both your um horizontal tabs kind of your main tabs where the details are and then also uh the sidebar tabs and then uh this screen screenshot highlighted in green is one way you can tell whether a record page is a standard record page or not if it has uh a t a sidebar tabs then it is generally a standard record page uh and we'll we'll get into the instance and look at that a little bit as well all right so what's one of the ways that you can work with the standard record page uh well uh page collections uh is one of those so a page collection uh is basically a group of globally avail ailable Pages uh that you can use across experiences and across pages and experiences uh that being said generally uh in practice you're probably using uh a page collection or you know the page collection and experience or maybe a onetoone uh relationship uh but you can use them across experiences uh we also refer to page collections as extension points um so uh these if you look at at the table name it's actually extension points um so it's a way for you to go in and add functionality to uh right now primarily a record page without owning that record page so we had a question earlier about that that we'll go into a little bit deeper uh and you can see in the screenshot here uh when you open uib you get a list of all your experiences and then underneath that you get a list of all the available page collections uh we're going to be working primarily with the service operations workspace page collections but you can see some of the out of the boox ones in the top screenshot here uh where you've got sidebar tabs and then the overall record tabs so you can uh open up those page collections add a page to it and then uh you know work with that uh without having to duplicate any pages into new variants all right and with that we're going to go ahead and jump into our demo can we hit a couple of questions real quick yeah um it looks like we have kind of a philosophy question uh but if a preset and controller have 99% of what you need can you customize the rest of the 1% um so I guess to answer that question so all a preset is is it automatically Maps something from the controller to the preset uh so you can take most of the mappings and then go in and remove one of the mappings I think uh we can look at that uh but I believe that's possible uh you it's not an All or Nothing thing uh so there's that one oh go for it if you want to read it yeah I can look through some of these uh is it is there a way a user can save his settings filters groups and similar uh so in a workspace there is a my list feature where you can uh go in and kind of save your filters uh we also as of I think Vancouver uh we added um more um more session based um functionality so uh if you do something in a workspace close it out and open it back up uh we're storing more session data uh for a user so things should be more consistent uh across um you know across sessions if you've you know changed the width of something on a record page when you go back to it it should stay like that whereas previously we didn't uh we didn't persist a lot of those things uh performance we're always uh we're always making uh performance strides that's you know a priority for us just about every release uh and so uh initial load um initial load we do do a lot of caching um but the first time you load a workspace or a page because it's not cached yet uh it may load a little slower uh we are uh focused we're pretty focused on that initial page page load though and and reducing that initial page load time [Music] um specific performance issue we do suggest that you reach out to support and try to get that trouble shot shooted shot troubleshooted that's a that's a good I don't know um and then uh another uh another performance thing there's a next experience developer tools Chrome extension uh and so we have done that we kind of touched on that in a previous Academy and on our un Andi Builder live show um but that Chrome extension does performance profiling um so if somebody says something is slow uh you can load up that Chrome extension and then um you know run it when you're loading a page and save that and then it'll do comparisons for you uh so that's a pretty helpful tool to have again it's called Next experience developer tools and uh it's available on the the Chrome web St web store right now it is only a Chrome extension all right let's get into uh service operations workspace before we look at page Collections and open up the new standard record page so in the November store release uh service operations workspace had an update uh and they added a standard record page uh to the workspace so if scroll way down we'll see SRP record here uh and so um a little bit about the store uh we generally have our store releases coincide with our um our if the store release coincides with a family release uh we automatically uptake a lot of store apps so uh when you upgrade to Washington uh you will get uh the store version of service operations workspace that coincides with Washington but in the off month so we release on the store four times a year two of those coincide with family family releases and the two that don't coincide with family releases you will have to manually update uh those workspaces so I think the newest version of s so is like 4.1.0 or 4.0.1 uh which came out in November I think you have to be on Vancouver patch 3 or four uh to get it U but I would highly recommend uh updating to that version because you do get the standard record page uh so we had a question come in what's the difference between standard record page and record snc uh standard record page uses presets and controllers we just talked about this a bunch uh previously uh but presets and controllers and then it also uses the tabs component so uh if I am looking at um here let's let's first add some demo data here um but one way to tell uh if I'm using a standard record page uh is if I am using the tab component for the sidebar uh so here we see that uh the sidebar is a tab component and it's calling this page collection um and so let's uh let's go ahead and add uh oh I have to do this and we will add some parameters here here it's going to give me an incident let's hit apply got it all right now we get some content on the page uh so a couple of things about this uh so you can see uh that we've got two main tab components here uh so one of them is this main tab I guess we have a main Tab and a sidebar tab component uh so we've got main tab here and then in that main tab component uh we've got a number of different things uh so we've got some page collections we've got some related lists and then we have the main details tab uh so what this lets us do uh is we've basically got page collections uh for all of the different positions in the tabs and so if you want to add additional tabs here uh you can go into whichever page collection you want to add something to and add a page to that page collection and more tabs will show up uh so the same thing works with the tab sidebar and that's where we're going to be doing the demo today uh but if you want to add something to the sidebar uh you can do that here and so you can so the reason that's important and the reason we call these extension points is because I can add tabs up here or to the sidebar without duplicating uh this variant and owning the page um so I can add tabs but I can still get updates to the page uh there are things that you may want to do to this page that do require you uh to uh duplicate this page into a new variant and own your new variant uh but just adding something to the sidebar or adding a tab uh you can do that without owning the page all right so let's go ahead and get into our demo today uh so I'm going to scroll down here to my page collection section and what we're going to do is add uh some sidebar tabs and so I'm going to click into sidebar tabs top uh and then we're going to do this in global I just want to call that out I I don't I wouldn't normally do this in global uh I would do it probably in whatever is going to make it easiest for me to manage my my development um so that could that's probably my own scoped app uh since we're not duplicating anything if I was duplicating a variant I generally want to work in the scope of the original variant that I'm duplicating but in this case we're going to create something net new uh and so I'm not copying anything over and I'm not going to run into cross scope issues um so let's go ahead and create a new page and where's my I have some instructions that I need to uh that I need to use here all right uh so uh we are going to create a new page uh we are going to call it uh let's go caller related incidents I should tell what our goal is here um so uh one of the one of the really common uh you know requests we get uh is uh what do I you know how do I show uh collar related incidents uh to you know sorry I just got a text while I was trying to talk and I cannot multitask so uh call Related incidents so if I want to see other incidents from the same callar uh this is one way to show that in the contextual sidebar without really having to own anything on the page uh so we're going to go ahead and do that so I'm going to hit continue and we're going to create this page and there it is and then one thing is I should not have called it default uh so it's generally a good idea to name your variants uh I probably will never create another um I'll probably never create another variant for this but just in case it's a good idea to to have your variants named something that makes sense just in case you want to you know create a new one down the road and you don't have to remember what's the difference between default and something else and a really fun feature of variance is for those of us who might be new to workspaces in the crowd is that you can use variants to show different types of things and pages to different audiences so if you want your tier one or tier two to see different versions of the same page you can do that using the audiences and the variance and what's really awesome is that in the page that he was showing before you're able to see the order of your variance if you had multiple of them it will be in order under that page variance tab that's right all right um oh and then the last thing that we need to do is uh we need to give this page an icon to have it show up uh in the contextual sidebar uh we learned that the hard way last week when we were messing around with this on a live show uh and uh let's go ahead and do that here uh so I'm going to open the actual page collection record uh and this kind of shows you on the back end you can see that it is an extension Point uh and then what we're going to do is add an icon that's not something that UI Builder does quite yet and like Brad said earlier we're working on making the experience in UI Builder better and better with each release so ask UI Builder evolves and grows we're going to see a lot of these experiences and things that we have to configure outside of UI Builder ideally making their way into UI builder in the future uh Brad could we zoom in please yes well here there we go uh so the extension Point here um you can see that these are all of the different uh page collection pages and then uh this is the one we added and so I think what's the name of the I want to use go list fill all right and then back in uib just go to the editor uh and and I guess let's let's check and make sure that that shows up in service operations workspace I'm going to open a record and like Brad said if you went through all these steps and set up your page and your page collection but when you reach your record page it does not show up on the list on the right side like he's about to show what you're probably missing is that icon so uh make sure you go back into that record and add in the icon it will not be on the form view the icon field it'll be on the list view of that table this is kind of what caught us off guard uh when we first were testing this out all right um so we had a question where where can we find a list of the available icon names I can't remember if we have that in the doc somewhere but there's an icon component that lets you see all the names uh and then we have uh we have some more stuff coming in the future that helps out with that uh so we can see that my icon does show up here uh and so we do have this page it doesn't have any content on it yet so it's going to show this um but we can go ahead and add content here uh so first all we're going to give it some test values uh so input table and input CIS ID uh it already has some test values so that's helpful for us I've added the icon Gallery link to the chat if anybody wants to get it all right uh so the first thing that we're going to do is we are going to add a new data resource and one of the things when we go to add a new data resource uh you can see that there's some inherited data resources on this page and this is a really important part of page collections is that the way that a page collection communicates uh bidirectionally to the parent page is through the controller um so through this Form controller we have access to everything that the Form controller uh has so all of the form information and then we also have access to all of the form controllers events so I can pull data into my subpage and then I can interact back with the parent page through an event and we're going to do that uh in a little bit in the demo uh but it only works with controllers there is no other way to pass data into the page collection page or get data out of the page collection page it only works with a controller uh so if you make another if you take another step from there you'll realize that really uh page collections are only useful on page that are using controllers which right now as of Vancouver is basically just the record page uh however we are um uh we are adding more preset and controller enabled components uh to other things in the future uh so in future releases you'll see um you know other components and other types of pages uh that will be able to use this also right now you cannot create your own controller or we don't we don't have any tooling for you to create your own controller I always say you can't do something and then some uh crazy developer figures out how to do it and and I'm wrong so there's not an easy way to create your own controller uh so we're going to use the uh lookup records data resource hey quick question yeah am I able to add a subpage in the contextual sidebar without creating a variant of the record page yes that's what we're doing right here so I have not created a variant of the record page we are creating a page within a page the page collection and it's going to show up um so when I was going through all the tabs uh that's what you do um you uh you create a page within the page collection so I have not duplicated any variants uh on uh on this call so far and the controller is a type of data resource and it does run server side to answer that question all right uh so what we're going to do here is uh we are going to run this against the incident table and what I want to do is I want to find any other incidents from the same collar so I'm going to say collar is and then I'm going to switch to data binding here and we're going to go data do record uh right so this is the parent Pages record controller and I think I want form do Fields do and I and I wish it was a little later uh and I could show everybody what how this looks in Washington say haror uh caller id. value right so this is going to get me the sis ID of the caller from the parent record uh and then also uh we want we don't want to return the parent record there so and the way that he's doing this is Brad is just has done this a million times so he's got this kind of memorized but basically the do walking structure that he's pulling from is from the data resource data structure that you can kind of see below his window you can just dot walk through that entire um Json structure and it will end up providing you the information that he's using right now so it's not like it's coming out of nowhere or he's making it up as he goes um it's currently a little bit difficult to identify where those all come from but it's definitely doable yeah and just for the record Brad is not doing this from memory I have it all written down uh so oh sorry like I'm moving very quickly it's it's not special I just uh practiced it beforehand he's just very well prepared nice yeah every now and then I I get prepared for something all right so we're going to return a couple of additional Fields here uh short description and stay come on all right and so I can see my output here uh so we are returning a number of uh d resources um so yep here we've got number short description and value I think is what we're mostly going to want to use so now I have my uh my results returned uh we are going to uh do some work on the page so I'm going to add a single column component uh we are going to add some padding here so it looks okay why can't I add padding there this is where I'm adding padding uh let's go large and then uh within that I'm going to add a stylized text component uh and so I added the stylized text component it is a preset enabled component uh so it's telling me hey we went ahead and added this with the preset uh and but you can remove it um so I'm going to say got it and I'm going to and I'm going to remove don't forget we have to test and see if we can change one thing from a preset oh yeah we we'll do that we'll do that in a minute um so we're going to call this a collar related incident we're going to make it an H2 and this is consistent with the way that the other page collection Pages um do this they have H2S at the top and then uh we are going to uh we're going to add a repeater component here so I'm going to add a component after and a repeat heer is a really it is an incredibly simple component uh it's just an iterator um so it just lets you take a data set and it just uh repeats whatever array you pass into it all right so we are going to pass in the results of our lookup records data resource and there's an easy way to do that where I can just hit copy and remember do as we say not as we do make sure you rename your data resources and it did not copy so that's that is a fail um I think we fix that though results all right uh so we've got our lookup records results uh we know that that's an array of objects um so I passed that in there uh we're also going to enable styles on this repeater uh because I want to set the width to 100% so it goes the full page and then within that uh we're going to add a card base container and one of the reasons you use a cardbase container is because it's uh clickable um so another question about creating a sub page for a record page that you can't edit that's what we're doing right here so we are we have not uh duplicated any variants so far uh we're just adding something in the sidebar all right uh so now we're going to do something uh kind of fun or at least I think it's fun uh so I've got um I've got my cbase container and one of the things I can do is I can make it interactive um so I'm going to give it a click event I think I want to set that to medium and then uh let us go ahead and add an event handler so when the card gets clicked uh I'm going to go in and the Form controller uh from the parent page has a ton of event handlers so I can do all sorts of things uh I can add form messages I can add field messages I can set field values I can open and close modal on the parent page um so this uh this controller data resource has a ton of ton of stuff in it uh but the one we're going to use is what's it called relay open record and so with this what we're going to do is I'm going to go incident uh so what we want to do is when I click on one of these I want to open uh that record as a subtab on the incident that I'm on uh and so the CIS ID is going to be at item so if you're inside of a repeater uh you have the item object available to you uh so item. value uh and we want row data and then unique value uh is the CIS ID of the record and I believe that's all we need there so I'm going to hit add uh and so again what we're doing is we're using the parent records controller uh and then uh using one of its event handlers all right so within this uh within this container we're just going to add a couple of pieces of data uh the first one here let's see uh so again I can uh just uh undo one of the presets and do my own thing with it and leave the other presets for this one I don't want to do that so we're going to remove the preset Al together we're going to make it a div and we're going to go item. value. number doplay value right so we have a number and then I'm going to duplicate that and we're going to show the short description uh one thing to note is that the repeater is only going to show you uh one record on the page and that's mostly for performance purposes uh so that you don't you know we don't pull as much data onto the page uh and make the stage slow Lish all right uh so I think we're ready to go ahead and test this I think so let's go ahead and save it and let's go back to this page and I'm going to do a hard re refresh so I'm going command shift R uh which uh clears clears the cache for this page and does a refresh and so we should see a list of records show up on the right here well it's assuming that uh David Miller yeah so we've got my list of incidents here uh we've got David Miller as the caller so if I click on one of these should do something is that that's the one we're on I always do that I it's not even the top one there we go uh so the one we're on was already open so it didn't do anything uh but you can see that I clicked on another one and this is another incident for David Miller here um and you can see this actually uh showed up uh as a subtab on the incident record uh right so I've got uh you know I've got that here if I opened up another one these would all be subtabs on this incident record uh there's another uh event handler I believe on the controller that would open it up up top if you wanted to but I kind of like the organization of this um where it's all showing up on the inet record there all right so let's go back uh we have a couple of questions that's that's kind of the end of the demo I have a couple of challenge things that we can try if we have time um that I haven't actually practiced but should work um but let's go ahead and answer some of these questions uh so somebody asked about Ajax calls in the next experience framework uh yeah we do not support uh Ajax calls uh from uh UI Builder so if you have a client script that's using Glide Ajax uh that should still work uh if that form shows up in a workspace you should still be able to do that but in UI builder in anytime you're interacting with server data uh we want you to be using data resources uh and so we don't want you to use a script and do your interaction through a script one of the nice things about using data resources is when you come in and look at a page you can see all of the different ways that somebody's interacting with data uh in one Paine here um and so you don't have to dig through client scripts and things like that uh the next one is it planed to sort stuff in a list um the client script oh so sorting like uh this this list uh that's a good question I don't think we have any plans to change how that works um somebody wanted a demo of how to pass test values to a page collection page it's just this test values uh selection up here so I'm just passing incident and assis ID and I'm getting those values from the uh the S so record controller I could get them from the form uh controller if I wanted to uh but this actually prepopulated for me when I added a page in this page collection uh can a sub page be created for displaying multiple multiple locations uh on the record page uh so you could uh have a page collection show up in uh multiple places but you would have to add that page collection in different places so if we go back to um the S so uh page here and open up the record page uh remember that uh wherever um the the page collections are directly referenced on this page so so you can't have a page show up in multiple spots without owning uh This Record page if that makes sense so we've got um we've got the main tabs where we have the different page collections so anything I create in these page collections is going to show up in that spot if you wanted to add something in multiple places you'd have to own this page and add the page collection to those different places uh what's the difference between the S so page controller and the Form controller uh so the Form controller is uh a standard controller across all record Pages it's got a ton of stuff in it um so it's got all sorts of things and it has a ton of event handlers the S so record controller is something the S so team built specifically for uh This Record page um so it's got a table and a CIS ID again it's specific spefically for this record page uh that the team is using uh so we don't we don't have every uh data resource uh documented because I think we have like 500 or something like that uh and um they're all they all have different purposes and things like that so if I'm getting that correctly the SRP record page is being adopted by multiple workspaces but the S so record controllers only for the instance of it in the S so workspace that's correct yeah so the standard record page most workspaces have uptaken the standard record page at this point um but they may have different flavors of it like s so has you know four different page collections they call on this page uh where the other workspaces it's not the same so again every workspace is different there are different engineering teams building the workspaces that have different requirements and you know the people use these different workspaces differently uh how many times did I say the word different there um so we we had another question about the Washington release we can't really talk about it yet uh but I think on Tech now at the very beginning of February uh they're going to highlight um some Washington uh some some of the Washington release uh highlights in terms of workspaces and uib uh and then we will absolutely have Somey and other other things where we go deeper into what's new in Washington our February and marchies are going to be dedicated to what's coming out in Washington so be sure to come back and stay tuned it seems like people just would like to use the rest of the time to keep asking questions I think we're doing great totally fine so some more Q&A um if a sub page has sub Pages can we pass the controller to the net nested subpages that's a good question you could try it I I don't know that off the top of my head I would probably try to stay away from nesting sub Pages um because it seems like it would add a lot of complexity and I'm I'm not really sure what it gets you um but uh I would test that out I don't know off the top of the head uh can I pass a dynamic parent table name and record to a subpage again the only thing that the page collection page has access to are the controllers so you can't pass anything into a page uh it's it just has access to whatever is in the controller um so all of these outputs your subpage would have access to but it can't it doesn't have access to like parameters up here yeah so uh one question again the standard record page uh you know every workspace is on a different timeline most of them have adopted the standard record page they've done it at different times s so did it in the November store release I believe the November store release of s so it's like 4.1.0 I think it does require Vancouver patch 4 or later any other questions let's go back to the in if you could explain like I'm five years old what is a controller a controller is a type of data resource so it's a type of data resource that works exclusively with components uh I don't think we have time to get into the definition of a data resource uh the UI Builder fundamentals course is a good uh primer if you're new to uib and not sure what those things are but a data resource basically a way to interact with the server uh we have one more question uh can a sub page uh return data to a parent page again a subpage can only interact with a parent page through the controller uh so it can it can access all of the data in the controller data resource and then those controller data resources also have a lot of event handlers uh and so that's another way that they can interact with the parent page is they pass data through event handlers um so I believe one of those might be updating a client State parameter um but I'm not sure um uh so we had another question that I don't quite understand uh extend s so at the lowest possible point I don't really know what that means uh but uh feel free to ask that question out on the community uh and I can take a look at it uh but uh for the few minutes we have left uh we do have a number of resources available uh the next experience Community I just mentioned uh we monitor that Community uh and anything that I can answer I usually try to answer uh it is a lot more active than it used to be um but uh that's uh on the and then on our community we have our Coe um there is a um is there any guidance on ux patterns when using components um so yeah this is a good question so example in HTML when to use radio versus checkbox so you would follow all of your standard usage guide like usage patterns You' just be using whatever component makes sense uh and then within an individual component uh there is a ton of usage information on the developer site uh for each component uh what to do and what not to do with that component uh we do have a UI Builder fundamentals course on now learning uh we do a uni Builder live show on the developer program YouTube channel uh it is the second and fourth Thursday of every month at 3:00 Central uh which is my time zone so everybody gets to adjust to me uh for this one and then uh our next experience Academy you are watching it uh and so that's also on the community uh YouTube uh live on service now uh is the series that this Academy and all of our cies are a part of uh you can use this QR code uh to access uh that um all of those sessions and then we do have a number of differenty uh of which we're a part of they're all platform acmis here um so those uh those are available and Brad briefly touched on this but if you really enjoy more indepth UI Builder and workspace kind of information and you want a more casual uh experience than this Academy you should definitely check out you and I Builder live like he said it's on the second and fourth Thursday of every month and it's definitely a much more technical indepth look into this than theem are all right and we will have a link to all the resources in the Q&A when I post this video yep uh so this will get posted we'll have all the Q&A we'll link to a lot of y'all are asking for different links we will link to all of those things uh so check out uh check out this post on the next experience Community Forum uh when uh and we'll try to answer the questions that have come in here and again thank you all so much for watching today and interacting we had a lot of great questions in the chat be sure to tune back in next month on the 3D of the month at 1100 am Eastern um for the correct time zone we're going to be going over what is coming out in Washington so it's going to be a great show and I hope to see you all there goodbye everybody thank you Brad thanks all
https://www.youtube.com/watch?v=RAT6Awh6QDY