logo

NJP

Merging two similar applications - Live Coding Happy Hour for 2020-07-10

Import · Jul 11, 2020 · video

[Music] hello and welcome to lab hope live coding happy hour this fabulous July tip 2020 Wow you take a week off and then you don't know how to train I don't know how to use your words again the same way you get into this routine and when you take a week of like where'd everything go it's not muscle memory anymore thank you for joining us everybody will go ahead and introduce yourselves really quick starting with Brad hey everybody my name is Brad Tilton I'm a developer advocate with a developer program here at ServiceNow I have been with ServiceNow for almost four years and I've been in the ecosystem as a customer admin developer partner trainer and now ServiceNow employee for about the past 12 12 years it's a that's amazing so long never you hadn't even heard a service now that back then and Chuck yeah I think it was about 12 years ago I was doing a Google search for some help desk software came up with service quickly we enrolled it adopted I was a customer also for a couple of years from 2008 to 2010 been with the company for just over 10 years so very happy to be here I'm a senior developer evangelist always excited and energized to share information like this with you today awesome Thank You Chuck I'm Andrew Barnes also a developer advocate here in the developer program developer dot service now.com I've been on the platform for over five years as a customer and partner a trainer and now advocate at ServiceNow directly it's been a great journey my first search for you know that came up with service now was it in 2014 and led me to go to knowledge 14 which was my first knowledge and attended all of them since then and that that was a that was a lot like though that was really for your first knowledge is a is a big deal so let's go ahead and introduce our beverages around the horn the same way all right I have a Kentucky winter golden stout which is more like a summer style feels like it's it's not very dark so whilst winter in Australia and rural will appreciate there we go yeah yeah and Chuck I've gone back to the Lithuanian refrigerator got another unpronounceable name this is again from my son-in-law this is their extra extra it's a yeah lager beer so one litre no 1/2 litre I think it's five hundred mils and I've got today a wicked weed and it's probably hard to read that which is a watermelon dragon fruit burst which is assess a session sour and that's sounds like a good summer beer yeah it is a good summer beer I had a little taste already so today we are going to do something that is probably not out of the realm of happening for nearly any of our customers and developers out there which is we've got two applications in two different ServiceNow instances that are doing similar things maybe not exactly the same things right now but they are they are serving you know some of the same requirements and a whole lot of overlap and there's a whole lot of overlap there and and so there's some features in one of these apps that are to be desired and some features and the other app that are to be desired and we kind of want both of these and we we want to merge that and so what we're gonna look at today is we're gonna look at both of these apps we're gonna get both of them in the same instance so I think we've already got them in the same instance now and then we're gonna look at our roadmap in process of how to you know keep using both of these apps have no downtime but start getting advantages of both of them and then consolidating on just one of them the top level requirement that we got was we somebody wants to see what Andrew and Chuck and bread and other people are working on for the Developer Program we've got blog articles we've got videos we've got live streams we've got all kinds of these artifacts and you've probably seen on previous episodes that Dave and Josh years ago started building this artifact manager to help manage them well that's some of the content most of the content really and meanwhile chuck was off in his own little world doing his own app to manage a separate process with some different steps albeit but it dawned on us that you know if you want to see everything it's going to have to be in one system of record one table to report on so we said how closely related are these and and did an initial call this week to say does this make sense to merge them and Andrew and I said yeah yeah it does so we'd like to dive in deeper and see how well do these two fit together because there's likely going to be more there's other artifacts that we're producing for you and again this isn't too far off from what you may see as a customer with different departments doing similar processes that really should be in one or your company's gone through a merger and acquisition and you have to take no incident from one team an incident from another team and blend them together possibly on an existing instance possibly on the new instance altogether so there's there's a lot of vibes that I think he'll pick up on when when we go through this and go one of the questions we need to ask and what are the solutions our answers may not exactly match to your answers but at least it gives you that the background thinking of what it takes to put a plus B and come up with C right and and all of that is is what what we sort of already started to do the one thing I will note in what you said though chuck is that they need to be in the same table that wasn't a starting requirement for us it was that we need to be able to report up in a single pane of vision what these are and that doesn't necessarily mean that they're in the same table in arcades we just made that decision that we want to merge these ants because there's so much overlap but that wasn't necessarily needed it was just what was appropriate in this scenario good distinction reporting doesn't necessarily mean coming from the same table right awesome so yeah Brad do you have any questions about this before we dive in and start looking at the two apps so what I want to do first is just sort of you know touch on our existing one that many of our audience have seen before really quick and then look at Chuck's and then revisit some of our earlier week conversation to just highlight the the key points we made there and get feedback on that anything before we do that Brad yeah I mean I think one of the one of the first decisions you end up making is where where is it going to live and it sounds like we have we have figured that out or at least where are we going to consolidate these yeah we didn't have that discussion and said look we've got instance an instance be these are two different apps on two different instances the the brute force approach would have been let me build a REST API to communicate between these two okay that was one option that we discussed we said you know it's not that hard to move the app and and I tried it via update sets this morning ran into some issues with source control had no issues so there's a little hint for you what's going on it's not we've taken that and put it on to the Deaf program instance so my app is now on there option three would have been lets reaaargh attacked and re-engineer from the ground up but that would have led to some downtime and and some clumsiness so we're taking this in a very iterative approach skipping over that option of you know should we use IDR or should we build our own REST API so that when a record is upgraded updated over here well if you're going to be running a REST API from one instance the other you might as well just move the app over to that other instance I know that probably isn't a common situation for customers I know there are some customers that have multiple pradhan senses that may be something you want to consider do you want to move yeah upward you want to i'm gonna call it remote integrate them awesome so let's go ahead and drop into the share and then take a look at the two apps real quick alright we're sharing artifact manager first yeah am i dry I'm driving here yes sir I supposedly agreed okay so this is our instance let's go through artifacts I'm the quickest I'm already on the table how about that artifacts assigned to me let's get rid of that and in here we've got C some of you may be aware of the Builder series video that's just coming out and we've got our type we've got different types of artifacts that we've got in there let me know if I'm missing anything guys you can probably sell this a whole lot better than I have because you used it much more and much longer than I have it's it's it it is not extended from task table we had that discussion with mister Slusher who was on a call just the other day and said you know if there were some long hard discussions between him and Josh when they first created this this table is not extended from task doesn't matter too much in terms of our integration but it may play a factor later on down the road if we want to do some automation or extension or whatever and you'll recognize a lot of fields that could be from tasks like duration that are high there's a hilarious amount of overlap hey parent assigned to him like mmm this feels like it's a task to me but okay and then we've got some different URLs the and Andrew you were telling me this isn't obviously it handles more than videos whereas mine was specific to videos and you've got your YouTube information on another table and then percolate the counts up to this table was that correct the YouTube data is coming it's referenced from this YouTube video but the the counts do live here on this record directly okay okay so they they retrieve any of the counts they're blogs or videos or yeah in any of the views from any of the data sources today directly to artifact manager and and I had asked you is this just a list of artifacts or is there some automation that happens on this regardless whether it's a video or a blog or one of these other artifact types and your answer was there's tons of automation here as I would guess when we do this webinar that you know live coding happy-hour is part of artifact manager and it sent me a calendar invite goes hey Chuck you're one of the hosts you're invited so I know there's some automation that's going on and that automation is based on the type I would assume it is it's very tight driven so that's gonna be one of the considerations here when pulling in your live streams is we're either going to need to add different conditionals on those or adjust the integrations to handle the different because they're they're broadcast to different communities even so ours is to the developer site and your community stream goes to the community stream the community YouTube so likely in a future episode we're going to have to deal with integrations that have multiple keys there are multiple essentials which is going to get interesting I know that there may be some upcoming features we could take advantage of that would be very nice I don't know if that applies to us or not but have it I think it does apply to us having a little crystal ball vision never hurts in his name let's just say Paris may be playing a big part of this migration in our timing couldn't have been better couldn't be better we've got this scheduled for Paris upgrade for these instances even so there was a quick question about the rank field so I've actually had that question before in the past too I'm curious if I I've just never asked it so the rank field it is so there's two fields and they feel like they're the same there's already and then there's rank and the the difference between them as rank a transcends type and the priorities really were within a type so the the highest priority blog item was that first the next blog to consider where his rank was we need to they're sort of paired but rank was everything is absolutely ranked across all the times and the rank is actually done driven with a business rule so you can't anytime you adjust a rank it adjusts everything else is rank Oh interesting okay so if you just double click on one of those and change it to say 11 it's just like 11 I'm not messing with oh this is Jeff anyway yeah that's Deb and you'll see that it automatically changes to 20 and the thing that was 20 became 30 and the thing that was 30 became 40 oh you're right okay and so it auto ranks them at tens and so you have to pick something that's not a 10 and then it'll shove it into the rounded down next 10 and just pushes everything else down so it's a pop them off the top ten is the lowest and it's at the top and that's the next thing that we should be doing no matter its type we don't use it currently very much obviously if Brad doesn't know what it's there for we're probably not using it anymore I sure know use it let's get set and come back later but but that was the intent between those two is is they're sort of pair but the priority was for one per type and rank is transcends type so that's roughly artifact manager so let's go ahead and drop into the the community episode is your main central table right right right the wonderfully named community livestream application yeah I like the rank I kind of like it like dryer sheets I had trust this doing something put it in there I assume it's doing something that's great that's a great analogy all right so the episode table is where I line up the ideas and what's coming up you can see I've got a few ideas in here for the now community live stream up through the end of July these are fluid because they're still not scheduled officially they're only scheduled until I put them on youtube but the idea is when I go in and start crafting an episode go hey John Feist or Steve from Sweden or somebody gave me an idea I want to flesh that out first I want to capture it so I jot down a few notes in here and go all right here's what I want to talk about reference qualifiers boom boom boom and then at a later date I'll come by and give you a more deep dive of what I want to cover in that episode so there's notes I've got something to follow along and make sure I'm not just doing this randomly gone are the days when I just turned on the camera and pulled articles off of the website but the topics HTML field is actually a legacy hangover but it speeds up data entry really really lots so I've got a topics related list down here which has text and a link and what used to happen is when I would go into the community I would track what articles I touched because somebody said hey can you get at me get me a link to that one about you know getting a value of a society okay attention here Brad cuz this is really cool stuff where was him and I went I would put it in a Google Doc and then paste it in here so come in as this bullet list I've got a parser that goes through here I'm not going to do the link part but if you had HTML in here and actually made these links so this would be text link a text one text to text three so on and so forth right this part when I save the record there is a point if it's in collection which it's not because it's not ready to go it needs a youtube link to say who am i linking to I can say reap arson generate and it will crank out the community HTML that I want to post to the community granted a REST API would be really nice and my good friends Andrew and Brad are working on so that we can automate this even further right now I'm copying and pasting but it's it's sticking in a YouTube leak this is affecting what you're going to see on the community and I get to see it rendered doesn't have to be I usually go in here copy pasted into the community in a way we go Andrew said I am NOT doing any copy-paste on the community this is going to be all automated but these bullets did not just come from this HTML field oh no no no they were parsed and this is the cool part related as really cool is not only does this get put into the HTML of the community but it also gets put into the text that becomes the description of the YouTube description so if I had links in there would be link link link similar kind of thing with reference except I do that with the episode links and I've got a collection of those yeah sure we'll save it's just demo data right now I'm gonna really important anyway and I'd say so why don't you have a slush bucket edit for topic because the topics come right out of here I think I never want to pick them out of the this is this is what appears at the top of the article when it says here's what I'm talking about today I'm going to give an overview of a ray util I'm going to then talk about arrays in JavaScript in general so it's more it's more human textual the references section is going to be where the links come up and those are often used so under under episode links I could just see how I would I think I would want the topics if I ended up having them I might want them to be you know if I've hit the same topic more than that one time I want that I want that topic record to be a singular one not multiple ones so that I can reference it and link to it and and relate those episodes together so that I could do some meta linking between these things and you and I had talked about this before one of the thought processes was we would like to present the readers of the blog the viewers of the videos some sort of way to relay these together if I'm a beginner to service now development I want to see the beginner videos or I want to read the beginner blogs we're gonna have to find a way to group those together through this metadata the episode links kind of do that gives me a slush bucket of what have I talked about let's see we're going to be talking about the array util so I'll put that over there we're going to maybe talk about flow designer a little bit we're going to be and this is easy and if something doesn't exist then I go and click new and put it in and it comes into this record so again if I updated one of these elements reparse and generate and now I have my references section in the long HTML it's it's really cool like this is this is how yeah when he when you showed me this on Wednesday I was like I yes please like that sold me on merging Maps I was like I want this feature like build McDermott's mergers like you got a really cool technology we're gonna put that in our app yeah we're gonna we like our app and we're gonna take your cool stuff and put it in it with that the whole thought was if you put a little pre-production time into this thinking about what topics you want to talk about what reference leaks you want to hit and the post-production becomes trivial when I get done turn I turn off the camera and I say goodbye to everybody I want this thing live posted links done and everything within five minutes that should be the end of it again room for automation because we've got to update the link on the community so we can post remotely through a REST API that kind of thing LinkedIn is currently not working because I wrote it for version one of their API which is deprecated about a year ago maybe a little bit more and I haven't had time to go back and implement version two it's a bit more complex I liken it that there's been basic auth and oaah 2.0 it's it's a different mindset that I haven't quite got into but yeah it's it's a lot of the same stuff I've got a state I've got a date when I expect it to be published the category is really since I retooled this in April around the whole topical deep dive lessons learned API adventures that kind of thing is it just gives me a code of where I can put that in the process flow for a matter is somewhat meaningless at this point but the the basic stuff is here the the template tells me how I want like the community template there's only one so a reference field is really probably not the right thing because when you when you have a table and there's ever only one referee one record in it and it has only been one record a year like this template meise overkill this post template points to the post template table there's one record in it the YouTube points to the YouTube template table there's only one right now on a link but same thing we probably have some you know which would apps grow organically I'm sure our developers recognize this oh yeah always have the long term vision in mind never certain thing and you're sure website yeah like that's the thing about when you're looking at older stuff whether you created or someone else you know it grew up organically and it was delivering value along the way in collecting feedback and you know growing so the process and the app we're growing together oh and there of course is a YouTube integration to this so nightly after I've got an episode up and running I don't know if my credentials are on this machine or not but let's take the one I did yesterday which was the foreman list data and my YouTube thing says I've got a 311 views I suspect it is running because that sounds like today's number and I say update YouTube views this is not 315 it's not using flow designer or integration hub yet I just started learning about I said just like two weeks ago got flow designer working with an API key for credential so we've got some we've got some working together on that stuff too right now this is all done through outbound script api's it's it's a bit brittle okay but it can work the track comments allows me to get a notification an email notification when somebody makes a comment on youtube so I got every six hours I got into another YouTube API call and say are there any new comments on any of these videos boom boom boom boom boom and it sticks them down in the comments table so I've already got three comments out here from these people and it sends me a mail with a link to the video directly to YouTube and a link to this comment record so I can see who said what and where do I go and and how do I get there so it's um it's pretty well tied together my reason for doing that is because I'm not only watching my video I don't own the community channel I don't have the credentials it's not mailing my account so if somebody makes a comment I don't want to miss it and I don't want to wait three weeks for somebody on the community team to go hey Chuck you got a comment that's not very interactive no it's not one day feels like a big delay to me but we'll talk about how often we want to scrub for comments and at least now I'm getting emails from things that are tracking comments on the developer channel on the community channel on the support channel so artifacts that I've made that are in other licences properties whatever you want to call other accounts like the only account I own is my own personal truck Tomasi account on youtube so and people aren't commenting about that very much so there's nothing here so the thing i envision with the comments for us moving forward is you know so we have YouTube comments we've got blog comments we've got community comments I foresee you know having a dashboard of the unified view of comments that are unresponded to by someone on our team that we can just you know open up in the morning and do our replies the other the other thing to consider is maybe we take those comments and we do some word cloud on them to see what is driving interest a little you've got PA on this instance I have not involved PA yet because I would like to track how is the growth where are we going who more on the number side but we could easily put it into you know the comments and and and so in doing things like that not just the comments but you know watching other community interactions but stuff like that too to see you know where questions are and things because you know you're you're doing some manual steps here to you know you found a question you're putting in here what I'd like is to ultimately see that that kind of thing is surfaced for us right is here's an idea that's moving up quickly in that ya community here's a mini replied to discussion in the community maybe we should go look at it and see if there's a broader question that we can answer from it you know some some introspection to to give us some insights on on what's going on in the community from automation absolutely yeah we you're right we've got the the community comments we can link back here so I it's it's going to be beneficial for whoever's making the comment that we can get that rapid response to them but also beneficial to us so we can start analyzing hey what's what's happening cuz I'll tell you though that I've gotten in the last month I think three or four topics just from viewer feedback hey can you do this I've got a question about that like well clearly I haven't covered that topic well enough or at all that it's time for a video on that so and we love that so if you're watching the show now or later in the future please leave us comments you know reach out in slack reach out in the community tag us so that so that we can collect those questions so if you've got a topic that you want a blog on a community article on a YouTube a LiveCode let us know like we we we're not doing we don't think of all of these things ourselves because we do we don't that may not be useful to the greater community so we get most of our ideas for what we're going to talk about and do from the community yes as something let us know if you read build McDermott's book winners dream he talks about you know going back to his deli store listening to the customers and giving them what they want that's that's what we want to deliver to you as well and that that's also why if you look in our artifact manager in backlog that's why it's not six months out into the future that's because we want to know what you want now and soon not later so when somebody said hey I want to know more about flow designer we're gonna find a way to apply that to our applications and then show you what you need to know about the basics of flow designer or something like that awesome so that's the two apps and you can sort of see that there's already some pretty easy overlap I mean we we've got title in both of them we've got description in both of them we've got date in both of them we have a couple more date fields we've got a category list versus a category drop-down but there's there's lots of commonalities that that I can see right off the top you've got a URL field for YouTube G and probably a URL field for community and possibly one for LinkedIn as well you know but that's not working and I guess part of my thought here before we start tying these together is Brad what do you think about about that kind of thing so right now our youtubes and blogs and social posts are for us separate artifacts and we've talked about doing some joint artifact it's like the these live codes becoming longer form blog entries and do we want to maintain two artifacts or do we want to have some you know ability to do both in one I'm not sure which way I'm sold yet two EPs with a bridge over one app entirely yeah so so I guess just to reframe it we've got when we do a live code it is its own artifact and our artifact manager yes and we may write a blog about a single live code or a series of live codes and that blog is its own artifact and what we're seeing in Chuck's community live stream episode table is that he's got these community live streams of the existing youtube and then they all have a community blog post associated with them as well so they're all grouped in at the same one so yeah I I think it kind of depends on where we want to go with with our videos and and live live codes if we want to do that or you know I think if we don't want to combine them all then it may make sense to do them separate and automate the creation of the other artifact and into phrase yeah going forward do you envision you said you want to do a community blog article similar what I'm doing for the for the CLS with LC HH right so I we have to that that's not precisely right so what we want to do is we want to do a blog entry from the developer site for some of the youtubes Oh some okay and then also we want to take our blog entries and reference them in the community gotcha so we will want to have the and so some live codes will have a blog which will then also have a community link I don't I don't have any heartburn about breaking apart the blog piece from the streaming piece as long as it's just as easy for you exactly.you action that we use and we say click this and says turn this video into a blog and it's done you know if we can make it that easy why not I mean it's okay you have two artifacts and you know not to be boastful but it makes our record look better that we're producing more artifacts that that wasn't a factor for me I'm just going to spin on it boost our numbers management will have to delete this part of the live stream nobody watches anyway they're not watching this anyway it's true i I feel like probably I will want them to be let me ask our requirements question from my end so I had sort of where I would envision it from how we use ours from yours once your show's over with mmm do you actually interact with those records anymore like what you hit publish generally no I use them more for statistical information it becomes how many views do they have how are we doing in fact I've got a quick dashboard on here I don't know if my dashboard came over probably not I'm in this scope maybe it did let's go to dashboards I have it configured this one the way I did if I I can't get this going in 10 seconds I will bring it back to the original source of where this came from okay so dashboard come on look at there hey that was roughly 10 seconds allow it this dashboard so what normally would show up on this one is how many views per month so I can see over the last two and a half years are we training up or training down this is if somebody watched a video from March it's gonna go in the March bucket it's not going to go into the number of views so it's not completely accurate but it gives me a proxy of how well are certain episodes doing and then on the bottom is average views per month per episode per month so I can say hey more viewers are watching in June than they were in May or may may so it gives me a just a couple equips of simple quick bar graphs the top rated tells me the views you know how are we doing on topics you can see since I retooled it things are going very very well most of these top 10 are out of April May June of this year which is very nice it shows me that the refactoring of the show is doing well and then these are just purely egotistical numbers how are we doing over big numbers there this is a big screen this is the this one I'm particularly proud of oops I didn't go backwards it is how many views do I have on any property that I've been involved with so this includes stuff from the ServiceNow support channel that have done voiceovers on this is all tech now Tech now makes up over half of that number and it's it's less than half it's a fraction of all the videos so I'm really happy about that the JavaScript series is 175,000 of that number so it's it's all kinds of different things from different sources so at some point in mid to late September I'm gonna be able to say I'm a million dollar viewer I mean a million viewer person and then I can compare this month or last month how we're doing obviously we just started the month so 977 views across two videos and averages whether they're going up and down these are these are numerical representations of this month and last month - the bar charts that are apparently broken can you go to one of your episodes and then I think I've got a couple of questions that will lock in alright this issue lessons learned from earlier this week so on community if if we're automating this part for you you're you don't actually type anything like you don't actually come here and type anything not at all just copy and copy and paste yes so you don't care we're at Lance do you have the URL after you create the post I have the URL after I create the post because what I'm doing now to minimize this with in lieu of having a REST API is I post it early like the day before in draft state then what I'm done and I stop the camera I just make it public nice okay which is why you might watch a video now and it says this was created four days ago yeah and so the community and YouTube tabs you you don't actually edit them no there's there's one cosmetic thing that I do in YouTube but it's because my template is broken I usually take that line out I just gotta fix the template okay so that leads me to believe that it's fine if they generate their own artifacts I think so too early automation and keep them up to date we would need a URL or some way to reference them so that as we get well as their own artifacts they would have their own artifact URLs yeah yep absolutely because they feel sort of like the fields you have here feel like they are separate records like your community tab feels like a separate record and your YouTube feels like a second record especially in light of you've got a separate record for YouTube we could keep all this over there or just generated dynamically whatever it takes we would since these are generated from the same elements I'll call them you know this comes from the topic list this comes from the episode links list there is still some connectivity in there I don't know how we want to reference the artifact to another artifact did you have a parent field or something we do we have a parent field okay so that might be a possibility the the templating I'll show this real quick because it's very similar to the way that like mail is done it uses the dollar sign curly brace stuff let me be sure that for you a little bit well nothing real magical here irezumi but it's a little brittle at this point because it's looking for specific keywords and it enter and I talked about this it's been on my backlog for probably two years now to clean that up and make it more data-driven map this keyword to this function to go stick this data in it could be as simple as you know GS get user name it could be a little more involved like or on this script include and then roll this for loop to make this list that's kind of what I want to do with this is to make it more flexible so and and share that with everybody on share that we've got this meta string replacement utility for you yeah I'm like I like that idea so to me that that seems like episodes becomes artifacts and your artifacts will likely and and ours when we want them to will generate you know children artifacts and that seems perfectly reasonable to me yeah it might just be separate UI actions for create a community article much the way you would call happy I wouldn't even make them in UI action yeah they would they would just be properties of the thing so okay like yeah and I community lab students and until we change the process they would automatically create the community article in the YouTube entry thing and it would be automatic yeah and we've got that current field and so it makes sense that you know what this really is is a community live stream and it happens to also generate a blog a live code happy hour it's a live code happy hour and it may generate some other artifacts as well yeah it may generate a blog and then the blog may generate a community and and that would all be automation driven in yeah I don't want to press a button if I'm gonna do it the same way every time then like if I know what the strategy is for how I'm gonna do it I can convince the computer to do it for me right right right if every every livestream whether it was community or live coding happier or something in the future if every one of those is going to generate the same artifacts but we could we could make that dependent on some other metadata on other goods it can even be whose it's assigned to or like there's there's several properties that we can you know yeah handle for that and we use template incretion of our entities and so likely what you would do is once you're using artifact manager is when you created a new community stream entry you would use that template and it would apply whatever the metadata to that artifact that would then trigger that it does the other two steps as well yeah yeah okay planning today do we want let's go do some work we've got ten minutes to do real work step one you know what I think step one is we need to open up the artifact table to be cross scoped aware because right now it's just letting you read I checked that out earlier we're going to studio and do I huh no no I'm saying do I do do you what do we have to open it up well if I'm going to be creating artifacts from the CLS app yeah who said you have to create them from the CLS app where are you gonna create a problem the thing that can do the creation could be artifact manager artifact manager watching for new records on in your table and changes yeah I guess you could do that do a poll instead of a push I didn't know if you wanted how much you want to pollute your pet your app it away yeah it's one app we can always disable that business role later and okay and do you want it to be a business or do we wanted to be a flow you know what flow feels better to me it feels more robust so so let's make it a flow yeah so make sure I'm an artefact manager I am doesn't matter with flow anyway doesn't yeah let your pick all right first time in Florida's honor on this system I'm going to favorite it because it is one of my most common tools these days it's funny how you you narrow this down or like three or four things that you just use all the time studio flow service portal config it's like that's probably my top three that I'm doing right now okay new flow or should we do a sub flow so we could possibly call it from a flow or a UI action or something ooh I like that forward-looking thinking cuz almost every time I end up making a flow you wish it was a sub flow I was like man I really wish this was a sub flow so that I could just call this thing where whenever and however I want to I've been doing the same thing in fact I've got a lot of my flows are yep the only thing in the flow is calling us a plug and I'm okay with just great calling a sub flow but that's fine it turns them into your you know 2.0 yeah it is so let's do this waiting for the application to load CLS create artifact hey we're lucky you can see the application list waiting for it I'm assuming he's gonna fill in with whatever was on the scope picker we do user or system system yeah we need to wait for application to finish loading yes I mean no one lets you submit hold up on your system I'm sorry I moved here I you didn't know you didn't get the right prep papers stamped at the should we categorize our sub flow while we're waiting they had the Alpha sure why not let's make a CLS some flow or CLS episode we might have CLS topics and CLS YouTube and something else later uh we're waiting for an available socket has anyone seen one no you're holding it somewhere I'm looking I'm waiting for that counter to come up and go we've been waiting for 30 waiting would you like to cancel oh oh there you go so the papers are already done now let's make a new one called CLS episode wow don't drink in code kids sure that sounds good actually you know what yeah yeah we'll leave it that way I was gonna leave off to CLS for a second it's an artifact manager application yeah we've successfully created a flow yeah and our input will be what an episode record I would think so that would be a good input let's call it seal it oh I don't want to be overly redundant but I don't want it to be we have any other episode tables in here you can't anyway doesn't matter cuz it's gonna be a reference reference has anybody I got a question for you has anybody played with the document ID field yet I've used it in roller and flow in flow I I don't think I've done a sub fluid document ID before because with a reference field you I thought this would allow us to pick any record from any table kind of like a data pill picker lets you do that just a show me a record and you could throw any record from any table what document ID still points to a list of tables and it does I'm not sure how that varies from reference it yeah for me it had it's no different when I used it it cuz you still have to specify there are some tricks Oh what you can do okay well we're gonna share those tricks another time yeah I don't know that we necessarily need an output I can't think of any at this point we're just say creating or updating a record in another day now watching the records in another table I don't think they need to output for now okay what are we doing in this flow so artifact manager is going to launch flow or business rule and say when something is changed on the CLS episode table I want to what greater update here yeah we want to create or update the related artifact for that episode so artifact artichoke artifact and so probably the first thing we need to do is decide how we want to relate them yeah do we want a reference field on one of these tables or do we want to empty em so do we want to enter one or an into em what are we linking together the artifact the open episode and yeah as we need these links somehow they need a unique identifier yeah and I can see an argument for both ways the m2m would be more disposable so when we get this fully integrated if and when we do that we could just throw away the m2m table and hooray we don't have any remnants a reference field would always be there but I don't see or but it would always be there on your table if we put it on yours when your table goes away and then my table goes away that could work you could do a lookup for records that are related yeah I don't see a need to relate multiple episodes to multiple artifacts yeah so that's why I referenced feels right or if we have a unique identifier already that we can leverage so would mean plus URL is a unique identifier for our and artifacts so the video ID for that matter we don't store the video ID and oh you store in the table in the YouTube table and so our link between the YouTube table and artifacts is actually the URL field to how to find them and then we use a reference field once we found it so okay okay so I think I think a reference field on episode table okay is is how I I'll and then I would need to go to your episode yeah that that feels right because the episode table is eventually gonna go away then it doesn't create long longer lasting things it's only here for as long as we need it I mean one of the things normally to consider would be you know how your how you plan on dot walking in the future you know you're gonna reference something then you know if we were going to reference that table from artifact manager you might want to put the field on artifact manager so you can just down to the values and then copy them in an artifact manager you know I stood there form designer but since it's going away I don't think I don't think that matters so much it's really I'm with flow but that's I don't even think the dog walking is as big a deal in flow after building an app for so many years it's hard to say it's just going away its merging into the board Virgie it doesn't have that many I don't know if many of you have an app out there but I've got one that's running in my old company for 25 years it still hasn't gone away I tried killing it in 2008 but it it still lives on and I'm long I think all of us developers have apps that lasted way longer than we thought they should one guy driving it I said Lee I can replace this with a freaking catalog item on ServiceNow I am I'm just deciding where to put it you know it doesn't really go put it anywhere and then move it later yeah that's true doesn't even need to be on the form like just oh you're right it doesn't great the thing we do it in studio I could have done this dude well well we're already here just drop it in there and then when was the tab that was bizarre they do not want all right so wait for it wait for it come on there and artifact sounds good to me reference you know and artifact artifact artichoke artichoke and that's about it yeah I'm done and I'm gonna put it out waking drop right back in the flow and wake up way back in the flow and we want when that episode changes we want to update the episode record not the artifact record no no we want to update the artifact record what are we doing with the artifact record well so we're either gonna create an artifact record or updated because right now the episodes are the source of true okay so we're doing one directional why did you kill because this doesn't know about the artifact field yet Wow okay pretty good okay so update or create where we're going on this artifact table artifact table and we'll get you know one field before we leave description title what did you call it short description is your title I think or it's called title on that I don't yeah I think it's called title we're matched on that then look at that so you hide all probably title oh yeah done whoo I got three titles but I know it's this one there's a community title there's a youtube title yeah wasn't too happy about that that it I mean we don't we need to like oh no we so what do we how we so this is the sub flow is when once once something that you know whether it's a flow or a business rule or whatever a scheduled job that's calling this however we want to do that is gonna say hey this this episode has been updated go create or update its relevant article okay so listen how does that some flow know whether it should create or update a record right it needs something unique on it it does you need a unique we missed that good call I didn't do that and that's go back to some flow create there's a little checkbox next to all these fields I say this is kind of layer coalesced field on an import set we need to say and so we need something that we're gonna so it's probably gonna be a URL yeah because it's the reference field on the the episode yeah so the other thing we could do is we could have yeah no I don't like that choice I like this choice just fine like but the the other path is we know whether or not there is one because it'll be in the field and it if it is one then we'll do a an update and if there isn't one we could do a create I think since we're absolutely sure we know what the thing is that creator update is not necessarily how we want to do this okay but it feels so duplicative to clue sitive duplicated I doesn't matter which word I was going for there it feels like we're going to do the same thing in both of those actions so that's really annoying oh wait so I'm so flow how about if we set the the reference field is on the episode so we should already know the artifact that's created or we gonna do it at the episode what order are we why don't we try and set the [Music] you guys just can't see how excited Andrew just got but he got really excited on the video but but but sad then cuz I like squashed it in my brain as I said oh we've got it we could just set it like the number from the episode episode of a number what no the episode artifact number has one oh yes okay and so we could set that if it's there and if it's not then it creates a new one oh what a fart if it's empty it will auto-generate one I think we can do that let's try it I'm not sure to work but I want to try it I'm wondering if it just makes more sense to say but so an artifact is empty then we're going to create a new record and Link it back to the episode as this hasn't been filled in yet ooh actually here's how we do it you're right so here's what we do is nuke that done do a look up okay so we'll do an if and then a look up but you can do the look up first and then drop it under the if you better become record records if you do a look at records for now yes if it doesn't find anything the flow stops yes look very sneakily I'm gonna let sneak in that that's gonna change assume you want to look up the episode in fact I want to look up the artifact or to heart and what are we what are we using is our condition episode artifact that the number is yeah sis ID or whatever sis ID is episode artifact that's too sunny this ID is oh okay dink dink dink dink sis oh wait we don't need to look up artifacts my bad no we just need to know if the value is populated or not I bad we don't need to look up artifacts at all we we need to create I said the wrong one it's create so we're gonna do an if you have anything in our episode artifact and if it fails it will create one and if it in in after both of those will be able to this is what sad this condition builder doesn't have full like string capability it doesn't say NP and is I've run into this before and it drives me bonkers so contains or does not contain I wish I could put a regex in here we can say hex character and maybe we can do this maybe this is equivalent to is empty I would not trust that it's it's I don't know let's try it yeah let's do a quick log I think we're out of time but we are we are empty but we'll be able to pick right back up on this yeah action long I will finish my thought on yeah this is how I this is how I find out if things really work or not I do a lot of logs no empty okay done I mean I wouldn't put logs there cuz I would just run it and then the thing will tell me in the execution boy no community let's take the one from Oh 2018 sounds good to me run tests hey look it's the top one with loading logs should we put something in there and make sure which did not work huh yeah well it doesn't have an episode so that did work right I thought the first one was oh yeah that's right if it if it is empty yeah let's go to a twist disregard well you just created the field so none of them will have anything in there I know what I want to put one in there okay I want to put one in there from 2018 - Oh 818 was that what it was yes yes 28 that's probably a Saturday anyway so let's put our artifact link not bad the right thing Charles don't drink in code kids and pick an artifact any that sounds good that one said looks great we're just testing low and hit test again one test and now our expectation is that we hit the lower brains which we don't have an is empty in the condition builder you can do empty conditions just say it's at least our under these constraints which is a reference field that's empty okay it doesn't feel good but it works feel good that works then if it is empty we go and create a record yes and update the episode with that new created record if it's not empty we update the record it feels like we just kind of walked around the Creator update but we don't have that information yet so we have to do it this way okay and I think it's potential that the Creator update could work with the method that I was thinking of is to see if you know the heart attack number it's the coalesce your title is episode title we're gonna just get this and hilariously oh no so I'm sorry I don't what yeah so this is what I wanted to avoid actually I know I did - I don't think there is in this case there sometimes when creed or update doesn't do exactly what you need so so hilariously what what I want to do with with how this is going is I want to create the artifact but not map the fields just map one and two a lookup and then an update with the math ins I almost want it to be a separate flow even like I want to run one of these flows if there is no artifact in the field and I want to run one of these flows if there is okay so let's do that let's go test there we go you know what happens when you do this it's gonna say please give me an input isn't that nice it does that you got a X this out then go back pick a new yeah community 8:28 run we know that one has a value add request oh that's fine let's go ahead and wrap up here okay and then the will will come back to this I'm gonna parse my brain a little bit on what I was thinking here cuz there's some different stuff that I'd probably it's not quite aligning how I wanted to because that what I don't want to do is I don't want to have two different things that have the list of what I want synced between like I don't want that in my life at all I want only one place where it's saying here's the fields from this table to this table that I want Matt I only want one action in flow designer doing that and I'll figure out a way to only make it one action that's doing that someone's gonna maybe we work backwards from the Creator update action like what could make this work then that's how we do the reference right so that's that that'll be key to me because what I really want to avoid is the maintenance of having to maintain multiple like transform mappings essentially is what we're doing there I don't to maintain multiple ones so that I have to update it in more than one place there this goes to this spot well flow does have those field templates where you can do the the field map use and save them later but you're right you we don't we should be able to get away without that yeah I I would like to avoid that if it if at all possible here and I think it's possible so I'd like to avoid having to to to do that mapping more than once hilariously we'll talk about it later a way that will make me less annoyed with that we where we're uh we're caught up on what's in Paris and we'll be sharing that soon but we can't do it yet so there's some there's some fun stuff in that area so thanks so much for showing us that today Chuck but I think we've covered most of the questions along the way in the chat thank you for participating everybody so now let us think our beverages Brad how was yours today sir my Kentucky winter golden stout was pretty good it was kind of a light light stout for the summer I'm gonna give it a four nice and Chuck how much extra premium lager it didn't quite get finished because you know you were busy they're when they're typing and well we were doing a lot of talking to you know what I give this a 375 it was it was really good as far as lagers go very full-bodied I was surprised it's not a taint no Miller light noise and my wicked weed watermelon dragon fruit burst sour was it was pretty pretty good not the not an amazing sour those sours I had on the last episode I was on those were those are really good those were four fives this is a this is a for my on a different day it might even be a 375 but today it's a four so thank you again everybody for joining us well we're gonna continue on with this one so where we want to do too much on the side for this part of it we're gonna pick back up and share the learnings because I think what we're doing here is actually useful and important and will and will help you know future even future me when because a lot of this stuff we do we we write things down and rerecord it because it's good for everyone not just which also includes us the number of times I've referenced what I said on a video previously is a little high yeah and Josh doing OAuth 2.0 how many like one of our most viewed videos by ServiceNow people yes by Josh and by me and by Dave is we reference the those videos quite often actually it's really some reason why I gravitate to a bi he's oh well is troublesome some days when it works it's great but getting a set up is a pain sometimes so have a great weekend and we have a show planned for next week to continue on with the smoking and then we'll pick back up on artifact manager probably the following week have a great and safe weekend and thank you for joining us everyone thanks everybody

View original source

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