logo

NJP

Data Relationships

Import · Dec 06, 2023 · video

and we should be recording uh good morning good afternoon or good evening depending on where you're calling from Welcome to the fourth session of the digital portfolio management launch and learn today we'll be focusing on data relationships and we'll be hearing from one of our Engineers Justin Harden who's worked on some of this today um looking forward to your presentation I'll let you take it away Justin alrighty so to introduce myself my name is Justin Harden I'm the dev manager for digital portfolio management uh service portfolio management and service Builder um I also have um Aon Guzman and Mike Hall on the call they're two Engineers on our team and uh they're the ones that really know the details and so um as we go deep and if we go into Q&A um I brought some backup with me today um and obviously you guys know Caitlyn she's on the call as well um and she's our our product uh management leader so so um with that um I'll go ahead and get started and kind of Orient and so so today we're doing data relationships and I'm going to go pretty deep um on how data is wired up into DPM and I'm gonna we're going to be looking at some code today um we're going to be looking at um some some sort of data relationships some csdm uh stuff and so it's it's meant to be um not sort of like highle feature overview but really like um how things work under the covers um so hopefully that applies to you um if not um you know or what I'm talking about isn't gerine to what you are looking to learn um you know we do have people monitoring chat and so ask your questions directly in chat and we can have sort of the conversation on multiple fronts so um unless there's anything else I'm going to go ahead and get started all right so um these are my notes and I'm going to be going going over these um offscreen as I go through the different screens but I wanted to kind of start with this like the the challenge so a lot of products uh that service now um ships are based off of you know a half dozen records like incident problem change or you know there there's like a a project or you know it's sort of like a more focused offering and what's somewhat unique about digital portfolio management is that it's very broad um you know what we're you know aiming to do is give a higher level view of of your services offerings business applications application Services Etc um and so um instead of going uh deep and narrow we go uh very Broad and somewhat shallow um the last count I think was 281 or 283 different data elements that we actually surface and DPM uh and we we surface that from 71 different tables and then we also have a ton of indicators so there's probably over a hundred different data sources if you count um indicators uh as as a table so it's it's quite a lot of data and you know I'm going to be completely honest I don't have all of the relationships and data sources and Nuance for all 280 of these data elements in my head um uh and and I'll go through some of the tools that we use on our team to um unwind that complexity um so the next point I want to make is there's a lot of different ways to um I hate the analogy skin the cat or there's a lot of different ways to solve the same problem in service now and and what makes it more challenging is our recommendation uh for how to relate data to other data changes over time and de PM supports multiple sort of generations of of data or product and so some of the complexity you you'll see is because we're really trying to solve for a lot of different customers who wire up their data in a lot of different valid ways who've implemented SPM in the whole sort of like data model um differently at different points in time um and then that kind of goes to my third point there are sort of layers of data so one example is we have a lightweight integration with um you know Sprints and uh stories but then if you implement our devops product it's a whole another heavyweight um not heavyweight that's sounds bad but a whole another um more comprehensive um implementation of those uh Concepts and and those new tables or those new Fields sort of replace the more basic implementation of just epics and stories and so there's a lot of complexity in DPM um and that's that's the sort of like the punch line of this whole story um but what we try to do is hide that complexity mostly under the covers um so as long as you're following the csdm as long as you're um you know you have that Source data um it it will pretty easily show up in DPM okay so I'll pause there um that's sort of the problem statement um what I'm going to do is I'm going to go through the documentation and then I'm going to go through three code samples or three examples actually in our product and then after I'll open it up for any questions that anyone has so pausing there for a second any questions before we move on to go over the documentation okay um I awkward I'm gonna go off video and on mute for 10 seconds I need to close the door to my room um I'm working from home and my family's waking up and I don't want to share that with all of all of my friends here on the call so give me one second okay I'm back I should have remembered to do that earlier okay um so the the first thing I call this the Rosetta Stone um this is our data source document and so um how you get here is you go to docs. servicenow.com and then you search for digital portfolio management and then you go to digital portfolio management reference and then down here you'll see another topic called digital portfolio management related applications and data sources and so there's some good overview um documentation here what I often go to is this knowledge based article you go to the knowledge based article oh I have to log in okay well I'm gonna I'm going to cheat a little bit and I'm going to go directly to the data sources document um this one is a slightly newer version We update this document every I want to say month or two depending on you know uh need and when we find things that are missing and so uh to orient you to this document um the layout is by main page and then where appropriate the tab and then the section and then the visible data element so for example you know the homepage so if I go over to DPM and I go to homepage um what we're going to see here once loads is every possible data element on the homepage is represented in this section right here so you'll see needs attention personal portfolios and Enterprise portfolios so it should be needs attention personal portfolios Enterprise portfolios and it talks through sort of the implementation of each of these things and so on and so forth and so you know personal portfolios is this screen right here uh and then it starts to get a little bit more interesting when you get into Enterprise portfolios I'll go ahead and I'll drill down into um Enterprise portfolios this is what we call our portfolio overview page um I'll actually go all the way down to a service right here code scanning services and I'll do view details and so now you're getting into one of the many hearts of DPM this is what we call the service Details page and you'll see plan build run info and so to orient you to the document I'm going to go I'm going to find the service Details page which is right here and then you can see the header in the right rail right so these are the D data elements here in the header and in the right Rail and then over here you'll start to see the tabs right so these are the items on the plan on the build so on and so forth now um what our first version of this document um kind of stopped right here where you'd see Source table field and it's like okay you know this Project's overdue by month for example if I go to let's see where was I let me link up here I was on the Bild tab okay so if I go to the bill Tab and I have this projects overdue by month this uh uh component visualization how do I wire that up well their first version of a document was like all right well just have projects and PM project um but of course it's never that simple and so um the next major revision of our document we added um and it's relatively comprehensive um the join methods or conditions and so you know to actually show up there you know this field which is planned in date needs to be um you know basically in the past year and so that's not obvious right if you look here it's like projects overdue by month it doesn't say you know past projects with then end date starting one year uh older or newer like it you know that that would be like the full title um you know we we obviously don't want to add that complexity or that much verbiage in the UI and so this is the main way that you can um understand what data is showing up in DPM um and and as you can see in this document you know there's a lot of complexity right so here core company whose service offering field is the offering and questions so that one is you know companies on in the subscriber section of the info tab you know and again I'm not going to go through all of these I'm just kind of trying to orient you and I don't know if we actually have any uh yeah we don't uh we have some departments in this this is demo data and it's a lot of time a lot of times it's randomly generated so so um you know we not we're not sure exactly what's going to show up in here on any given instance so I'll pause for a second um um any questions or reactions to this data sources document okay don't be shy guys if you don't want to come off me you can always throw your comments in chat I guess my question is this something you guys will be sharing with us after the call yes and and the the it is available publicly it is a little bit hard to find okay and I'm going to go ahead and log on here and it'll take me a second can I apologize I think we put the link in the chat oh okay great yeah because I think I mean it's great having that level of detail so I think that'll be helpful for us yeah we we almost like we get a a good number of case tasks or a good number of customers just asking like why doesn't my project show up and that's very common and so um what we've been doing is is when we get those questions the first thing we do is make sure this document is updated and and then we we send the doc out um of course after answering the specific question and it is on the doc site it links to this knowledge article the knowledge article goes to this um page and then if you click on this um download the data sources excess Excel file um that's the filing question um and the one that I'm showing here is a like it's a maybe a month newer so it has like seven or eight edits it's pretty much the same cool um okay I see a lot of questions in chat and I'm going to can the source logic be modified absolutely and I will actually um share some of that in a little bit um okay what's the uh Lou I'm looking at your question is the dot doc uh document addressing what is in the spreadsheet you are showing uh I think U Mike then put a a link in there subsequently point to the right document okay okay awesome the KB article has the link to the Excel spreadsheet the doc article I don't think does it just has the tables okay we got it yeah okay yeah and again like this is this this spreadsheet is what like I call it theone it's like it's what our Engineers often use um when they're trouble issues or or whatnot um we like to actually document requirements for new Fields um uh in user stories and then translate that here so this is pretty a pretty direct connection to how it's wired up so okay um all right um let's see go back to my notes here where did it go okay so um the next doc the the only other doc I want to show is the cstm reference white paper and so there's kind of two things here so um okay this is a PDF you can download it um uh you know I literally just search for um cstm white paper and then I've you know this is where I download it it's I'm surprised it's still in draft I couldn't find a non-raft version um but I believe this is the latest csdm 4.0 uh Doc and there's this this article here and then you can download the PDF here which is in PDF and one of the key I mean it's all good stuff it's all kind of like the latest in how we recommend you wir up data um but for us one of the critical um uh pages is right here it's page 31 and it really talks about a lot of the core objects that we deal with in DPM and so here I took a screenshot and did some annotations with a little uh I know magenta um blobs those are um csdm relationships that we and I might have missed a few I did this just before the meeting these are the the cstm relationship that we represent um in digital portfolio Management in different ways so like a good example is if you want an application service to show up on the technical service offering then you go into cmdb RCI or is it R cm dbci it's it's the the cmdb relationship mini to mini table and you have to create the contains or contained buy relationship between these two right and if you want to do business service offering you do dependson or dependent on right so and if you set those relationships up then when you're in DPM um let's see let's see here if I can go it's probably in a run sorry and I didn't I I didn't actually prepare something on this one in particular so this may not be a good example um anyhow it it should show up there um in user services this is one we use a lot here knowledge bases let's see if this one has good uh demo data here and so again if you if you um use these cmdb uh uh csdm that was a lot of acronyms uh relationships um then stuff will start to hydrate our show up correctly in digital portfolio management let's give it a second to load and if I can show you if not I'll move on and we'll get into the code there's application service dependencies we just need to get it a few seconds to load here ah darn it okay so I don't have any application Services wired up um we did we did a lot of demo data work for knowledge and we had some pretty clean examples I kind of wish I had access to that right now um but uh anyhow if I were to um have an application of service and using the cnbr C data and this is on a business service offering right and so over here I go to Business Service offering and there's this this uh relationship depends on application service if I were to go in and create that relationship between this business service offering and this application service it'll show up here um and that's kind of how a lot of things are wired up are through the csdm uh reference okay so um that's the documentation any other questions around documentation before I go to um kind of how things are wired up okay so we're going to start over here and this is going to be the simple reference so this is the uh basically what I call a simple table reference or a UI Builder component table reference and what I'm going to show you is I'm on a business service and I'm on the build Tab and I'm going to show you how we wire up this donut right here so this active projects by current status it shows uh the number of projects and the red yellow green status of each project associated with this knowledge based uh business service and so um uh what we do is these are all built using the next experience we call that UI Builder internally um and um if you find a data element or this kind of goes to answer the question how could I change these things and you want to change how reference works UI Builder is probably the beginning of what it takes to do that and so here it's loading up UI Builder righty come on UI Builder all right so nuui Builder there should be an experience called digital portfolio management I'll go ahead and open that one I have to be patient I always uh want these things to load faster when I'm demoing to groups of people here okay um these are all of our pages and then um and this this is a little bit challenging but um you basically um uh need to know that we're going after the service Details page and in this case we're going to look at Service uh details default and so this is getting into the it's not really what you see is what you get but it's getting into the almost wizzywig um editor here and I I'll share some of the complexity and and some of the challenges that that we face with DPN okay so this is this is um the tool that a lot of our Engineers use to build the product and right off the the the bat you'll noticed something a little bit weird um you know if I actually look at the page um uh you know there's a lot going on here right there's there's um a header I'm sorry I'm on a business service offering let me go to service okay um there's a header there's a right rail there's a bunch of tabs in each of the tabs there's tons of stuff and UI Builder actually don't necessarily see all of that and the the reason um the summary reason is we have a lot of conditionals in here where if you're missing data or you don't have a plugin installed or um you know you have a certain property set um we uh or or it we don't want to show the data until the page is loaded and the data is loaded right um we hide it and so you'll notice like when when you when you refresh a DPM page um you're not going to see a bunch of like empty components with old data it's going to kind of build um you know uh progressively and it's going to only show you the data once it gets the new values and so because of that um um you see a lot of kind of what I'll call like empty state in UI Builder and so um and it's something we're working with the platform team on and how we can kind of force everything to show an UI Builder even though the visibility rules and stuff are set to Invisible but because of that what we do is we really rely on this uh Tree View over here and so what I want to show you is again it's on the build Tab and so um you know how our pages are built is there's this screen out here and then there's these tabs inside and so I'll click here and it and it shows me a tab set okay and inside a tab set are my plan build run and info and I think I said that we were going to look at the build tab so I'm going to go go ahead and click on the build Tab and then I'm going to open a UI Builder and it's going to open a tab or a sub page okay um now uh once we get here I'm going to go to um body main container three uh main container five let's see where is container container five um and then CR by state Okay so so um this right here even though you can't see here for all the reasons I said and and just if you're curious and you want to learn more see this hide component thing right here this is what we call the visibility rules and this thing right here says is par filter set so we don't want to show this data until we actually um know what um object we're representing so like we're only going to show um uh changes by state once the actual um in this case service is actually fed into the screen um if we don't do that then what happens is as you uh navigate around this data could be cached from like the last Business Service you're looking at so we only want to show fresh data we only show want a data that's actually relevant to um this knowledge-based business service not the last one you saw and so that those are some of the things we had to do and UI Builder to make that happen all right but now this is actually the simplest use case so you'll notice that um this is just a component right this is just um a it's called a a donut uh visualization you can find it over here in component Builder I'll go do that really quick so if I do Donut oh is it is it visualization it's data visualization and then it's it you I would drag and drop this in here and then I would set the type to Donut data visualization type is donut okay um once you drag that object in there you'll get this uh component configuration screen on the right and this one's pretty straightforward and that all we had to do here is set the data source to a table and then we set this data source to uh the change request table and then we set the metric to account of change requests and we Group by state and that's it that's we're done like that is how we get data for that donut and it's it's the simplest use case in DPM um one other thing that I'll notice and I think we have other sessions on this in the future is that you'll notice that this is all read only right you'll see this read only the variant has a protection policy the reason we do that is uh we want to um kind of do two things we want to allow for customization but we don't want to bra block your upgrade path and so if in our very first versions of DPM these were actually rewritable by our customers and what what would happen is a customer would come in here and they would make an edit to this page um now the next time they upgrade to a newer version of DPM even a patch release this change is captured in a table called the customer updates table and anytime you have a a record that's Modified by a configuration record that's Modified by the customer we don't include it in an upgrade and so the bug fixes or the changes we make to this page you want have and then something will break and you'll create a case and we'll have a case task and the first thing we do is we go in there and we see if there's a customization and see if we need to repair that so and and I won't go into too much detail but what you do if you want to change this if you wanted to change this from a donut to a pie chart or or a bar graph or whatever um or even change the D table source is you would uh clone this entire page and again we'll go into that in more detail later um and that so that is a quick dive into the easiest um way that data is wired up in DPM and I'll pause there for a second any questions comments was pretty deep Lou you're one of our power users and so if you think that's deep then I'm kind of worried I'm going too detailed here and it's only going to get harder yeah you you have to already have your skill set honed a little bit with the UI Builder right and then you can follow along and you were going a little fast so if you weren't watching carefully and you missed kind of The Next Step then it's like okay where are am I now and where did he go yeah yeah the the the that's a good point I think the summary is um in UI Builder the the simplest use case is you find a component over here like a visualization you can literally drag and drop and I can't because I'm in readon mode but you drag and drop the component into UI Builder um when you click on that component you get this configuration thing on the right and all you have to do is you wire it up to a table and then you can configure the the metric you know count average whatever and the group buy and then bam you have your data here on the dashboard that's simple yeah that's that's the the summary um skipping over a lot of the details uh Justin we have a couple questions in the chat you might want to address one from rer it's can you show an example of what a dynamic CI group looks like when related to technical service and DPM um I can't off the top of my head Mike or Aaron can you take that and then we have another question from Deb um I miss what to do when the page is read only and we need to change okay so that first question Dynamic CI group in regards to a technical service yeah I'm not quite sure um are we talking like let me see if I can see the question there's any more there okay yeah I that's your best bet just pull up the csdm model yeah this is Helen raver I we we aren't currently using Dynamic CI groups I just was curious if it when in DPM does it present the same as an application service um like how I guess how do people see that relationship in the module yes it's the same Dynamic CI group is an application service it's uh you know if not in this diagram but I think on the same csdm uh reference on docs there's another diagram that shows the what is it the cmdp uh something Auto application Auto table which is really a view that includes three other tables including the CNB CI Dynamic Service uh where those are so it just depends on how you're GNA do Discovery if you're doing tagging or if you're doing service mapping or you doing like we're doing that's all we use as Dynamic CI groups and then there's a embeded query a a cmdp query and manual where you associate the infrastructure to the the dynamic CI group okay thank you cool well I'm going to take that as a note too and um you know if it's something that a lot of our customers are doing I think we need to do better documentation and and you know be more ready to um demo that so that's that's a good um good prompt thank you for that um okay so um I will let's see if I can go into how to clone um um really quick well does say really quick but that might be overselling it a little bit um all right I think I go let's go back out um and this is um slightly newer and so I I'm gonna have to go that one more there we go okay and then let's see here product details service details defaults okay so um here I am back out of the uib page and I clicked on the screen and there's this um create variant or duplicate variant and so I'm gon to duplicate and again we have a whole session I think we have a whole session on on this later I should double check but and now um what's happening is it's actually creating a um essentially a copy of that page and I'm going to go ahead and create it it'll take a moment here I think Mike is gonna present the Deep dive on this later so I'm stealing a little bit of his uh content here and the session on duplicating and editing pages is going to be July 26 by the way okay we'll give this a few more seconds if it doesn't finish I might I might um continue on the data one and defer this but let's see here these are relatively like expensive operations because there's a lot of Records under the covers that it's duplicating right now it's like a toaster if I look away it'll finish I know all right let's let's come back to actually I can't come back to that because I'm in Builder you just have to write it out feature request for waiting music might be something well received some Jeopardy music and yeah the UI Builder tools aren't necessarily blazingly fast but they're not usually the slow I I'm tempted to try again here but okay I'm about to give up all right I gave up so normally what you would do is you would go in there and then you would set the view to something that's lower than 100 on the order I'm sorry the order to something that's less than 100 and then when you go in and edit that screen um it'll be it'll be a writable and so instead of um The readon View that we were looking at um you could actually go in and make changes and then you save it and then when you open DPM it should just show up um let's see if I can get back into uib here all right um while that's loading I'm going to try to multitask our server here and I'm going to try to open up um the next part part of the launcher learn which is uh around data Brokers and UAV data sources oh boy come [Music] on figure out how I can okay I'm going to try a new browser session here Mike and Aaron can you go check like one of the other DPM review twos and see if it's coming up uh just in case this instance has wedged yeah check in okay see as soon as I asked asked for that it starting to render okay all right so what I'm going to show next is um I'm going to show you something that you would think would be very simple um and it's the owned by field on that same service Details page okay so I'm going to show you how this is wired up right here we see owned by Jose Hamilton and um you might think that that's just a simple um you know stacked label component that I drag from uib and I place on the page and I point at the owner field and boom we're done um but that is not in fact how it works in uh DPM and so I'm going to let this finish rendering the demo Gremlins are making themselves seen today with my instance here come on yeah it looks like the DPM review2 is running a little bit better they're all kind of running slow right now for some reason instances but the um yeah my guess is on review 3 it's probably still trying to duplicate everything in the background on the instance itself was running pretty slow but um yeah review too yeah actually it's PR much better okay let me see if I can bring this one up faster here okay so this is a slightly different version of the app but it should be uh workable here and so um I'm gonna go into see cop link have to do some on the Fly editing here this should work go all you Builder G to open up digital port management okay and this is a a slightly different family version here but I'm going to go to service details so we're on the same page I think this is a Tokyo it's it's not a Utah instance um and then I'm going to go to service details defaults okay and again I just want to show this owned by field here and so when I click owned by um you'll see it it highlights the object over here on the left and it goes to service label uh one okay now this is where it gets interesting so um I'm going to click on the items box and I'm don't worry so much about the code um uh I and you don't necessarily have have to like remember this um because this gets pretty complex um but I want to kind of show the bigger picture I just want to do it in detail uh and so um what's Happening Here is we're hitting uh what's called a data broker and so whenever you open up something in UI Builder and you hit the items Tab and you see this api. dat um right here that's a signal that you're actually going against a data source and it's called get personal portfolio item metadata um uh yeah get get personal portfolio item metadata and so um what we do is we go down here to data sources and we'll see get personal portfolio item metadata um this is ultimately what's called um when and you can see the git ID the ID is that exact thing that we saw in the item thing over there so when we saw api. dat. git personal portfolio item metadata um it found the data resource with this ID and this thing is a reference to a function and I'll I'll show you that in a second and then this is a sample um response so we've created an API under the covers that returns metadata uh and the reason it's not against a simple T table is because this um code is reused um across a bunch of different object types it's used across um uh Technical Services Business Services um service offerings um application Services I believe and the underlying tables might have slightly different um uh column names for owned by or you know there's some variation there but we wanted to create sort of a standard way to get this header data and so we've created some function calls that gets the metadata for these objects and populates the headers and this right here is a sample response okay now to drill down and again don't worry about remembering this but it's I'm kind of taking you on the journey here is what this does is it um calls a function in dpmu tools um called get personal portfolio item metadata and let's see what that does let me see if I can open definition um and this is this is an important thing so this DPM utils is what we call an extension point and so um this is an important concept if you want to customize your uh um uh Behavior or how your data lookup lookups work in DPM um the file that I'm going to go to in a second is what we call the outof thebox or you know default implementation of all this Behavior but you can simply redefine uh any function that we Define in here and create your own custom version of it and this should be writable by customers and so the reason we do it this way is that as a customer if you want to change how what metadata you get like you don't want to show owned by you want to show manag by in that header um you could overwrite the function I'm about to show you and actually return different data um okay so so that and you do that right here so now going into oops question is that also govern in the widgets so for example on the Run tab the number of incidents problems changes is that what you're using to I mean because we we can set the parameter for the duration right from this date to this date but we can or I don't know unless it's in an indicator what those are configured to show or not show meaning you it's not like it's on a report where you can hover over it drill into it and see what the condition is right you don't expose that at least not in DPM maybe you have to go into UI Builder maybe like I said in an indicator so you see open incidents or uh if you even drill in uh you're on the business service to the actual offering or actually no way you you go to the little uh context menu on the left hand side the three the hamburger thing and then look at this from an business application perspective click on list so you can see all yours and then all business apps and then click on a business app and then go to the Run tab of that yeah so those are all good questions those great yeah yeah so so um and I'm realizing man time flies when you're having fun um uh and we don't have that much time so the the summary is um there's three different ways that you wire up data and uh and this is another example of where things are changing so right now um uh you know these I believe are this is like custom and you know uh custom uh single score implementation um based off of a a script so the way I'm showing you now would work you would go into to this function uh this file with with which has the data broker functions in it and you could change it there um now in a upcoming release we're actually changing this um the this part right here to be driven by um par indicators um and so that's the third data source that I don't know if I'll have time to show maybe that warrants its own working session or maybe it's too detailed um for this forum but um and so so remember there's three ways the one the first way is a component config which I showed you with the donut the second way is this function uh implementation uh data broker implementation which you would do in this case I believe for business applications and then the Third Way is par perform part is I think was it performance analytics and Reporting um and it it's um has indicators and there's a whole there's a whole section of content on how you would change an indicator um so I know that wasn't a super clear answer Lou but hopefully that was good that was good I know appreciate it because the point I was making is you don't know if that's pulling up uh incidents that are currently active like you have to go dig through this code to see what it's actually rendering is my point yes yes and um get okay and I believe but I believe that would be defined in that data source is Doc right Justin yeah well so that's that's the we don't want people have to do what I'm doing right now which is go through and and dig through um the snc utils uh function um we want people to be able to go to the data sources doc um you know which is again this one right here um sorry I had to close my browser so I lost my credentials blah go multiactor off yeah that was a really helpful explanation I appreciate it um so anyhow so the first step whenever you want to know how something is wired up is come here um if it doesn't answer your question and you have the appetite then you can kind of do what I'm showing uh the group today which is you know go dig into the code uh and then the third thing is just open a case and we help because I know this stuff is not um not uh necessarily simple uh to say the least um okay so um within this uh let's see DP mut SC there should be a get let's see what is it I'm sorry is this uh metadata let's see here um okay so um uh let's see here get [Music] umio it oh okay I'm sorry I was using the underscores when I didn't need it so okay so um long story short is um we've implemented a function here called um uh where is it get personal portfolio item metadata um and then that calls get personal portfolio item metadata wrapper and then that calls this function right here see there we go and so this is um where we're actually grabbing the content for that that simple field so you know remember all we're doing is we're getting this um owned by Jose Hamilton um but down under the under the covers we're actually checking to see you know um you know if this is an offering or service then I'm going to basically construct this response and you can actually see right here I'm going to get the display value and then the actual value of the owner field and return that in own buy and so there there's a surprising amount of complexity for what is a simple stacked label um and the reason is code reuse we want to allow for customization without um necessarily cloning uib Pages this also Handles in in some cases it handles internationalization so translation all that kind of stuff um and it's how a lot of stuff is wired up um so wow so um that was I I I was convinced that I would get through all three of my my data sources in half an hour and have plenty of time and we're at 54 minutes after and I've only gotten through two um but but again let me summarize and then we'll do the the LA questions for the last six minutes there are three ways to get data um uh one is uh just looking at a component table reference the next way is using data sources uh or data Brokers which ultimately lead to this uh function uh this this Javascript file of functions and then the Third Way is um par data and that includes indicators and metrics and there's a lot of setup and a lot of complexity there but it's super powerful um okay so I'll I'll pause there uh any any questions or comments yeah you sharing that uh document with us or which document the when you just showed that broke down your notes I guess oh I I can I certainly can it's not meant for public consumption but I can clean it up and and share it out if that's something that's interesting to you guys I'll leave that up to that's fine yeah okay okay um and also you know I think this is one of the the deepest um you know technical launch and launch and learns that we've done so any feedback you have for the group on do you want to see more of this or do you want to keep it higher level and that's super valuable to us again our whole reason to be here is to to um help you and to serve you and so um get let us know let us know if this is um too much not enough you know uh or or what what's helpful so all right anything else all right I'll hand it back to you uh Christopher yeah awesome thank you so much Justin um as you stated we did throw a lot at you all today uh so if you have any questions or comments post call please feel free to fill out the form that I sent in the chat um a couple minutes ago we do look at your responses believe it or not we'll be looking at them all day today and probably some of tomorrow but before we um send out the recap email um but with that I'll say thank you all for joining today look forward to seeing you all in a couple weeks I stop the recording thank you thank you thank you

View original source

https://www.youtube.com/watch?v=nRYKIdA9hSI