Excel Imports in Integration Hub - Live Coding Happy Hour 2022/03/04
[Music] so [Music] hello and welcome to live coding happy hour we are all happy to be here live coding happy hour is the show where we try to build something on the now platform uh in our san diego release season we're using new san diego features to build those things and uh they are all non-practiced uh demos uh so it's just we're trying to do something we're doing it for the first time for the most part and we're gonna run into the same issues and do some troubleshooting uh just like any servicenow developer would do before we get into the show we're going to do some introductions uh so we will start with earl hi everyone i am earl duque i am a developer advocate here at servicenow about six months until the pla six months into the position about close to five years on the platform mostly in higher ed nonprofit stuff bouncing around the ucs uh i have the benefit today of driving today's content so it's gonna be wild josh hi uh i'm josh nerius and i am a product manager here at servicenow i'm responsible for integration hub among other integration technologies i've been here about eight and a half years and it's good to be back on live coding happy hour it's been a little while yeah josh was one of the originals on live coding happy hour so it's a lot of fun to have him back my name is brad tilton i'm a senior developer advocate with the developer program here at servicenow i've been developing on the platform for a while and been with servicenow for about five years and i am excited about our show but we have to introduce our sidekicks first uh so earl what are you drinking today i'm drinking bacardi straight from the handle no um i have so um i have lee's vietnamese iced coffee concentrate spiked with bacardi rum so that's what i'm drinking today i've already had some it is so good highly recommend to anybody that likes coffee likes vietnamese iced coffee likes rome that's right it's delicious oh i expected a lot josh so i have today uh from empirical brewery it's a local micro burning chicago uh symbiotic sour ale so i'm going a little abb today i haven't been drinking much for a while so we're gonna see how this goes nice i've got i actually have my backup beer because my first beer fell out of my car and exploded on the ground um but it's all right i have from is it deschutes whiskey butt porter uh so it is a porter aged and whiskey barrels so what was the thing you were gonna drink it was also from deschutes but it was a it was a stout aged in whiskey but i like stouts a little better than memphis so yeah well uh earl why don't you tell us what we're going to be doing today so today we are it's going to be a little bit different on today's episode um if i pull back the curtain a little bit on live coding happy hour uh and creator toolbox for all that matters is um we are we usually try to choose content based off of like new things because we're developer advocates we're trying to get features out there into the into the open so people are talking about it people are learning about it people haven't seen it before we want to get it out there um live coding happy hour is meant to be not uh prepared so we try our best to not do preparation beforehand so that's an actual demo and make sense of like what an actual developer is um going through it but um the new features that i wanted to talk about integration hub this week because today this week is integration hub what's next week brad do you remember next week we're going to talk managing app dev so source control some of the new app features and then we're going to try to set up a containerized mid server on friday oh nice okay so i'll figure out how to do that in the next week so there you go i'll have to watch that one for sure but this week is integration hub so today um i wanted to show off two more features about integration hub um uh the being able to use excel as an import um spreadsheet uh when creating an app and then um we're going to jump into data streams and how to utilize a new feature that allows faster running of certain data streams and so we're gonna jump into those while showing those features off but my goal now right now is because those are such like kind of like innocuous kind of features and stuff like that i wanna um let this episode be a like a flex on how fast we can make stuff in servicenow because on tuesday when we had mark uh scott with us to talk about more integration hub stuff we um we had we talked briefly about like why what why should pro coders care about low coding stuff and it's so obvious like it's so obvious why procoder should be happy with low code stuff because the things where i'm about to do are things i like if you think about it would take any random full stack engineer days and or months to make and i'm gonna do it in like 20 minutes flat um i don't know someone time you and see how fat how slower it gets once i start drinking some more in fact let's all take a drink cheers all right cheers cheers to low code okay so now the fresh new san diego instance uh i think requisition requisitioned this on monday so it's pretty fresh um fun fact you know it's one of my instances because it has the animated bouncing logo on the top left so that's how you know it's one of mine uh nobody tell brand um no one has approached me about it yet it even gets shared on linkedin every once in a while and i still haven't gotten in trouble but uh we're gonna go ahead and create an app um and the app i'm gonna make today is based off of a spreadsheet that i have that tracked all the mileage information of my um my now gone dead old civic okay so i used to track all of my um gas mileage via um a spreadsheet of like oh whenever i refilled the car how much did the gas cost and how much miles per gallon did i get on it um and so i have it all in a spreadsheet and so i'm gonna we're gonna make an app out of that really fast to show how we can take um if like old processes like i mean anybody watching here if you're a developer you know that you've converted some spreadsheet to a servicenow process in your lifetime and this is this is how far we've gone where we could just go into a low code app do the same thing within like a few seconds um even faster than like four years ago when we would go into like the table um interface and create a new table uh and so i wanna keep flexing on um how servicenow devs we got so much cool stuff that makes things so much easier so i'm going to um create an app earl were you like an ultra miler is that what they call it and the we have like the flaps over the wheels so everything's more aerodynamic and you can get miles out of it i know with civics people used to do that a lot is like block the grill anything to make it more aerodynamic and civics are yeah they're known for like it's like oh you sold yours before it was 300 000 miles what was wrong with it it's not allowed you have to use that yet um all right so let's get started i'm going to name this car mileage app because it does have more than just one car on it so i'm going to go name it more generic than civic app i keep people keep telling me that i need to start making descriptions on stuff so um uh uh info about my beat up civic there you go future you will appreciate it car mileage i don't know my civic when you upload a picture where does that usually show up do you guys know yeah on the app record uh there's an image uh so there's a few places that it shows up like if you go to my company applications the i think the images show up there does it show up anywhere useful sorry it can be useful if you have a lot of apps in that uh in your app list uh i think it can be useful there all right it's also how we we differentiate spokes if you're building a spoke and so that icon actually shows up in flow designer in that smoke picker that's a great point yeah all right so i've created an app i'm going to say i'm going to upload a spreadsheet and now you see right here this is one of the new features in san diego's excel files are now accepted so i'm going to upload my car mileage excel sheet which is right here this one here's my little civic with all the miles and all the times i've recorded gas for it and it looks like it should be done yeah row one is the header and i want to import the data too gonna go sit there i'm gonna go ahead and take another drink it's so good thanks fellas for following suit yep it's just good live stream etiquette can't say no all right so going through the columns i'm going to just make sure it matches no is a string that's right cost uh could be currency is better date is date odometer is an integer yeah sure uh the car is a string yeah because that's what kind of card is a partial is if you if it was a partial phillip which is a true false skipped is if you skipped a record record it's a true false the fuel amount is a decimal i believe it's like how much how much gallons did i actually get all right is that auto populate if you uh say full amount would be a good flow to write what if you say i put i filled it up all the way you should auto populate fuel amount right well i guess of because it wasn't empty never mind yeah all the way it's hard to for it to guess yeah how much it actually got i was just trying to pull in some automation to the app what's that i'm saying car mileage i guess car mileage should make um some people angry and put mileages right there you've made chat i know phil's in chat he's gonna say something if i put s right there no phil loves uh plural table names oh this is for you buddy this is for you oh man i don't know i gotta go guys [Laughter] no no good good good table naming is doesn't have s's on it that's the plural uh yeah okay i'm okay with this there there there he is there he is waiting for that all right so it's building my app it says it's done and let's go check it out yeah that's there's all my stuff but how much the the tank is usually 11 gallons so that's all here's all my fill ups um how much the odometer was when i did it and then i guess i would just have to do some basic math to figure out the differences on him or just plug him into a report but i want to emphasize like i typed in maybe one thing during that process here because here comes our faces again here i typed in like one thing in there and it was the table name um and now i have all the columns matching the spreadsheet all the the table is actually built ready it has records um ready to be reported on ready to do all these things and it was it was mostly all mouse clicks um while i was drinking while i was chatting to josh and brad about random stuff and making fun of phil with table names and i was able to do that without like thought and that's like how far we've come along in service now and that's that's uh that's what stuff always is amazing to me because it's like the job is getting easier um yet we're getting more and more in demand um as developers kind of thing um yeah i mean everybody say say you're a servicenow developer on linkedin and get ready for the spam like that's just how it goes now um i mean did i miss anything did i need to do anything else besides that just to get an excel sheet turned into a table in on servicenow ready to be uh added to add experiences to like forms and um uh reports and all that good stuff i'm thinking so one thing you might want to look at so this is awesome when you want to go and just create a table from a spreadsheet like you did and it's super fast and easy we also added support in the new integration of imports user interface which is sort of outside of app engine studio it's available here as well but it also makes it easy to bring in excel there too so in the past it only supported data streams and so you the essentially the same ability to process excel but then also giving you the ability to define your own mappings if you have a more advanced use case where perhaps you want to do some transformation on the data as it comes in um that's also available and maybe something we should poke at yeah well um the next thing i wanted to do to show like how easy it is to set up certain things is um the next thing i wanted to do was for this this app was to create a data stream for it so that anybody could call it um easily uh i'm just grabbing the table name real quick anybody could call it um quickly um using a data stream and then i'll showcase another new feature that is in san diego for it but if you if josh if you know more i mean you do know more about this stuff than i do but if you see where i could show off like what you just said and stuff like that let me know uh yeah so if you just type uh import in the left there um we should see a new there should be an option that just says integration now yep that very top one and so this is the standalone user interface and so we've been doing a lot of work on modernizing simplifying import sets making it really easy to create your own import sets and so this um this integration of import uh interface allows you to create those new import sets uh with that new ui as well as the ability to now process excel spreadsheets so if you kind of walk through this it should be fairly fairly straightforward yeah we're just doing this on the fly we're going to see how let's do it it's a true live coding happy hour for sure oh we're not even close to a script anymore wait i have a spoke here already oh i know that's different things so if you choose file does that that can be an excel file yeah so now there it is the new support for excel comes in and so if you were to go and pick that same spreadsheet you kind of see how this starts to play out uh one thing you can do is yeah through a little bit there's a zero or is it one other one index i believe so do one and one on that and then up at the top do the yeah the load source structure so this will go out there it'll take a look at that spreadsheet it'll pull the structure in yeah 7 is right it does kind of look like playbook yeah it's it's kind of similar so what we're really trying to do is start to uh unify the experience of integrations across process automation which is what you really have with flow designer and a lot of the spokes and start to bring a lot of that same functionality and looking for you and simplicity into handling imports so now if you were to pick pick that same target table just for curious what i made earlier right yeah exactly car mileage is i think is what it was oh that's right no i deleted that yeah so now if you open this thing up what you actually have here is the new mapping interface where on the right hand side you've got all your columns and then a left-hand side you've got all of your source data you can also just drag those pills from the left to the right yeah so the like the the original excel import we did is great if you want to create a table and quickly populate it with stuff but for any like real app you have you're probably going to have to continually populate it with data you know you may get an excel from somebody once a week or once a month and you've got to populate that you know more than just the original time so this lets you you know this is basically like import sets except in a way easier to use interface than the old import set interface and i mean i'm pretty sure the old import set interface you still pretty much have to have like some sort of admin type role to where you can import into any table um so yeah you know this is this is a nice uh step in the the next direction exactly and the other thing to note here is um if anyone's familiar with rte or the robust transform engine this is a high performance transform engine in the platform that was released a number of releases ago you might have experienced before that the user interface for that's not very easy and this is the new way to interact with that robust transform engine so it's going through that new high performance uh underlying you know architecture that's able to process a lot of data the other thing if you haven't is if you click on one of those fx buttons on the pills and so it's super easy to you know apply those codeless transforms where in the past you would have been in there writing some script nice so phil phil asks um like where can the excel come from in this case like can you can it come from attachments you know could you if somebody's emailed servicenow and it became an attachment to a record can we automate taking that excel and importing it yeah so at the moment um the is from attachments and we will continue in upcoming releases to expand the ability to retrieve those uh but at the moment it's i believe primarily from attachments yeah i mean that seems like like pretty much the primary use case right most most things you send into the service now end up as an attachment somewhere if it's not a record right and with that said you know as you know with the servicenow platform everything is extremely flexible and so if you need to write a script that moves an attachment onto the data source before it runs it's certainly something you could do but we'll continue to make that more of a first class experience yeah uh real quick question um for the mapping part match what is uh is was it meant to be like this is that coalesce yep matches coalesce and so okay and for anyone who's not familiar with i don't have any coalesce fields on here so i'm just going to carve maybe oh yeah because every time you'd probably want a new entry yeah it's it's a new entry each time so it's there wouldn't be a coal that's on the table uh for yeah cool s is like uh if you have a unique identifier um that you want to match against on the original imports that's what you would mark as a match exactly exactly can it come from a google sheets from the google sheets spoke as a good question you know i bet you could take it from the google sheets spoke and then like rewrite it as a um a file in flight and then just attach it that's that's a good question the other thing to note is that the first if you go back to your source configuration for a moment and go to the picker the spokes down below is going to be a list of all the spokes that have data streams in them so if there's an existing spoke today that has a data stream i i don't know off the top of my head how google sheets is structured but uh that will become available here and that's that really unlocks the ability to get data from spokes in your instance let's build a data stream for this new table all right so i'm gonna um build a data stream if remind me i think it's like enterprise customers for integration hub okay um action name uh we're gonna do a simple one we're gonna say get all take that all um describe it gets all records come on hi nice a mixture of best practices and not best practices all right so uh um i'm in a so i i'm going to pros no uh the request is going i'm going to use um the table api here uh which um i think it's probably easiest if i just use rust explorer real quick that's where i always go i'm gonna go to a rest explorer wait for it to load and pick my car mileage table so we do have a couple of questions on the import functionality around if they're still like if you're still able to use the trans transform maps and like onstart you know on before on after and i believe it's a totally separate functionality right josh the imports right yeah so the imports the new integration of imports is not directly on top of the existing transform maps it's more aligned to that robust transform engine we are going to continue to increase the number of use cases that you can support in upcoming releases we don't yet have support for script we wanted to really focus on the codeless experience first to make sure that we started to round out a lot of the things instead of just saying hey here's a script box have at it let's really get into what are the things that you do the most so that you don't have to worry about script to begin with and so that's where you'll see those transform functions the codeless transforms and things like simpler reconciliation with the match instead of coalesce and so on and so forth but we do have big plans nice i want to give an update i'm pretty sure i didn't mix my drink so i'm pretty sure all the rum was on top i think i'd just drink it all nice because the coffee is getting stronger which means i have a lot i think i've not paced myself right so i top heavy this episode with the alcohol um and so what you're saying is it's all downhill from here like yeah we're gonna get good data streams data streams let's get in data data data streams okay so i'll say data but i don't know what the right thing is um so i jumped in and i said on my in my data stream i'm going to say it's a rest step uh usually you want to define a connection um in the platform view and then bring it in here but um i'm gonna do it in line one so that we can see what's happening right here so here's the table api i have a credential of my my information already so that's what the authorization parameter is and then yeah get is fine right now so parsing my favorite there's only one choice for each so you have to do them i think on a i think on a year ago a live coding happy hour chuck said the same exact thing when he was doing data streams he was like why is there only one option what's the maybe that's a a road map thing they're revealing it's still the same so it's it's still there all right so we have both the ui does jump out at me there that there's too many words and the they don't get spaced out enough there's some there's some designer in our design org that is cringing yeah that is that is not fantastic let's see if i can make it worse there we go it actually hasn't changed i think it didn't change it actually zoomed in properly i'm proud i'm proud of this interface good job all right so we're splitting it in by json and uh if i remember correctly okay so if we go back to the explorer so the result is it puts the records inside of a array um named result with which is the top level of the object and so to get to each item you want to signify the relative path of the object and then it's the first dot result this is pointing to the result i think we'll find out soon enough yeah you're on the right track okay cool um and then it gives it gives us nice little structure that tells you what you need to do which is very very nice i've appreciated that um and then we're gonna um output well according i remember reading i was reading like you need to it's safer if you parse it first just in case uh source item status so we have an input stream um and the source item is coming from whatever you split from uh and i'm gonna parse it because it is a um json object and then we're gonna output it to a bunch of stuff so um dude i don't need number yeah i will say number uh object number yeah yeah up and then the next thing what was all the things on our table i already forgot so we'll just say the car no we'll say the um odometer and the fuel amount and the cost it looks really quick yeah i i would never try to do more than one thing the first time and just be like okay we'll stop any of this correctly we'll do those two of it right now we'll do those two right now yeah you're good i i have a lot of faith in you that this is gonna work girl i don't i appreciate you brad though can we talk about brad for a little bit i just appreciate him so much he's one of my favorite guys he's been such a big brother to me during this whole six months of me trying to figure out what to do with life did i ever tell you that i become a friendly drinker i'm a friendly drinker and then i turn into a sleepy drinker so you're going to get the whole gamut of earl's personalities right here we've got it we're good for the next half hour hopefully um i also appreciate you josh because you know what you i inherited a lot of your own old stuff i got you know you it was you and dave that created points thing right it is yeah yeah all those all those fun projects yeah all you thousands of people that use sn dev slack dumb workspace uh the points thing was josh and dave's baby they they created it if you if you ever contribute to the one that's actually running the pro um the repository uh the parent of that one is josh's um it's still attached to josh's repository that's how because nobody nobody sends you pull requests because it only goes up to that level um it's always scary when somebody says i inherited this thing that you built i'm i'm always like no but this is a good thing this is a good thing no yeah that's i'm happy that it ended up well well and i mean i while we're spreading the appreciation i gotta give it back to you guys because you've taken live coding happy hour and it's grown and it's awesome oh thanks uh i'm trying to remember everything i did yeah i think like i think super smiley right now there's there you go uh ideometer yeah and while you're typing this out for anyone who's not spent as much time with the data stream actions really what he's doing here is setting up the structure what the action will return so that the script will actually have a place to put that data uh may not say that i'm sorry i think the the rough is kicking in y'all should the labels be friendlier does it really matter probably not with this on a live coding happy hour gets a pass yeah we've we've already tried to use plural table names so it's all out the window at this point all right are you guy are you all team um uh initial caps all or just first letter cap i'm just first just first letter or first word yep same with me yeah same okay i think oh that's the first time i pressed save this whole time i'm horrible oh man i'm so glad i didn't break or refresh wait where did my thing go oh what happened oh do you know how many outfits where'd my output go i just spent all that time editing oh did you need to save you don't have to say before you add outputs do you you shouldn't have to no you have to exit the output first i mean if you think about it on the back end if they're like related records maybe the record has to exist but oh oh no we'll make you capitalize in this time huh i don't know what your error down there is too that's interesting duplicate name input yeah it seems like maybe i'll hit the refresh button first maybe it is there oh yeah oh well that's even worse it's probably still okay oh it didn't save it weird all right i think i think it said that duplicate name thing when i put item because i already had one did we have to oh yeah maybe just get it done i'm gonna now i want to try to reproduce and see what happened there yeah i'm curious at least we have video edits that's right josh has already sent the stream to the dev team yeah talk to the product manager for this thing i'm almost there i'm tabbing as fast as i can okay so i'm gonna say exit okay that's that's that right and then uh try yeah see if that'll save wait i thought i didn't i thought it outputs it to that automatically uh so you don't need to actually populate the outputs at this point at this point the script will do all that that's what i thought okay thank you for clarifying that i was about to click on more buttons all right just think this will work they're still there oh we got a neck we gotta and oh it's green hey there it is look at all the stuff oh man look at that okay that hats off to you hey yeah everyone's drinking celebratory i also have that one asian gene where i get really red so if if i'm getting redder then you that's because i um i think it's actually like you're like i'm slightly allergic to alcohol i think that's what it's supposed to be interesting interesting i don't know i just uh you guys are so i i love you guys this is great we did have a comment should all of the outputs have been string do we want to make some of those uh oh you're right yeah they shouldn't have been string let's go let's go fix that real quick who said that christopher good comment oh you're right christopher good job here we'll put him up on the um good call they should not odometer i think it was a decimal it was what would that be what would that be here that would be just a number yeah i'm just trying to have a number well actually on my spreadsheet it's always an integer yeah okay all yeah all the values that you showed were integers but number was um fuel amount was a decimal for sure and total cost was a currency is that there i try searching for currency just number really uh oh yeah i know that's not uh not a supportive typing complex objects i type in cash money it didn't work yeah you don't want to do any uh you don't need to do any conversions on the integration hub side of things right yeah the the complex object is just simple types let's test that again just make sure it's still working and then we're going to go do some code snippet grabs all right here it is and look look at that formatting it knows what it is nice not a string anymore good call chris all right so now we have a data stream um i'm gonna go bounce back to my action and i'm gonna publish it i'm so warm [Laughter] you know it makes you feel better i am a red-faced drinker as well it happens real fast okay so once you publish it you get this new um uh option called create code snippet i love anything that gives me that code snippet for me to copy paste i also like that you don't get it until you publish it that's kind of nice actually that's true i can't use this until it's published remember yeah okay so i'm gonna um i'm gonna grab that and i'm gonna go back to my old best friend background script nice is it going to look fancy is it is it this looks the same is this different uh s and utils this is my oh you know um okay i'm um this isn't a soapbox or anything um early on in my career someone told me hey i send utils or um or like explore toolkit all that all the fun stuff that adds a lot of developer tools for you um but early on in my servicenow career i had sn utils running and then i had a client get really upset because i couldn't remember what was their experience versus my experience on the same page that's fair and so ever since that experience when i was a young developer trying to um figure things out i realized like i'm going to try my best to always be in the same situation as an end user so that i don't get like lost among the new all features that they don't have basically and so i never install explorer or smu tools um i mean i i sometimes i wish i would but i i always go back to like i've done i've gone this far without it but um i'm not i'm not opposed to people using it um i just personally don't i have a non-essen utils browser but the main one i use is absolutely full of sn utils stuff shout out arnold uh yeah it's a great extension for sure um okay so here it's the line numbers that it gives you in the background script is the really helpful part yeah uh okay so what i'm what am i gonna do here i'm gonna um uh i like that it's already in a try catch so thanks for that uh i think i'm gonna just go ahead and grab some of the variables from each one and uh it to oh my gosh the formatting too is what kills me sometimes um and just i'll put it into a little sentence real quick and while you're setting that up you know one of the things that's cool about this is you can use data streams kind of in a first-class way info designer or in the new integration of import or even in classic data sources but this script api lets you build this into any app use the data however you want so that's pretty pretty flexible right so let's run this see if it turns out what i want it to uh yeah okay so i did the number in the dominator perfect so um here's where i'm gonna um finally splice in why this is important for san diego content um so uh you'll see when i access this data stream i was able to get all the objects in and i'm parsing it to show each um record plus its odometer right now so nothing's fancy until i make it prettier um i think this is the most i've ever drank on live coding happy hour so let me breathe you're doing good you're doing good yeah thanks um your stuff is all working right now and it's we're we have 20 minutes left and it's all worked so oh my gosh is that the trick better than i'm better than i've done before is that my trick i need to be drinking more to get good coat out all right um yeah okay so uh when when this data stream and the ability to call um set up a uh like a flow runner basically to go get a data stream and let you utilize it in any way you want um like you get to build a data stream that expo like take puts out whatever exactly things you need to um put out and then you just give that to other pro developers or other resources that are i'm going to consume it one can't control is necessarily how many times it's being used and how often it's being used and how often it's running um if especially in a larger delegated development um situation and so uh when this originally came out um you'll notice up here a lot of things happen whenever you call it so that's um well i'll be more accurate and rerun it because some of those were scope privileges so let me run this again okay here's a better here's a better look at it uh so here's like a um it created three json chunks and then deleted them uh it created a context which if i go to flow designer and go to executions you'll see you'll see the times i've run it so here's four records and if i go back and run it again uh if i refresh this it should be five records there it is so you can actually go into each of these um anytime someone calls it you can actually see the context record if you have reporting turned on for it um so that's a helpful thing so the idea is when i was reading up on this feature uh the update is um this uh can be cumbersome especially if you're running a lot of smaller data streams like imagine um like you have a bunch of small data streams but they're getting called 100 times like within a certain amount of time that's it's creating these front at the very beginning creating all these records deleting some records creating contacts saving the contacts updating the context uh it gets it gets a lot of front heavy it's not necessarily so bad if it's like one they're calling one really big uh data stream and it only calls it once per day or something it's not that bad of a big of a deal but if it's calling a lot in a short amount of time then a lot of overhead so in san diego they added a cute little uh method that you can add between your data stream name and the run method you just put that right here and say quick if you add quick with no parameters between those two methods and you run it you'll notice that um it does well here let me again that was that was scope religious so let me run it again there it didn't actually create any records in the database anywhere so it ran it without it now and if i were to um show executions of it it shouldn't show up at all yeah so it's still five uh yeah five so it's not even creating the execution record of it so if you have um if you have the problem of a lot of data streams or slowing down um your instance or uh creating a lot of overhead that might be an option for you to um you just lose the debugging part of it but if you know it's for sure bet then that dot quick thing will save you some time and i think um josh do you remember the percentage times from that they reported when they said this feature like it's like 25 faster for if you have a lot of data streams smaller data streams being run it's like 25 less time yeah it sounds roughly correct i don't want to commit on that number but that sounds in the ballpark and really you know one of the use cases that's come up with this is imagine you want to get a bunch of software off of computers and the first thing you do is you get a data stream full of computers and the computers all come back and then you say hey for each computer i want to get all the software on that computer so that's another data stream to get the software and so you can imagine this scenario where you're looking through data stream a and then for every result in data stream a you're actually another database and so you might execute ten thousand a hundred thousand data streams and and as you might know you know inserting records into the database is one of the most expensive operations that there is and so while all of that reporting and debuggability that you get from the execution history is great when you're in debug mode or if you're trying to troubleshoot some kind of a problem once you're in production and you want to do something more high performance that's really what this is for is for those more advanced use cases where you have sort of nested data streams interacting with each other in high volume so how is this uh you know we introduced i think in rome the ability to change the debug levels of flow designer is this is this independent of that or is this it like automatically does not do any debugging is that basically what it's doing yeah essentially and so the levels themselves are levels on top of so they're if reporting is off you still have a context record that gets written so there's some history that this thing occurred and then the levels are on top of that so on top of the context record how much detail are we you know all of the steps are we going all the way down to the individual you know each individual thing inside the data stream and uh whereas quick just says turn it all off i know i don't need any of this turn it off the other thing to mention there is because of the structure of the foreign apis it's a builder style pattern which means you can sort of conditionally add things or add methods so for example you can have an if condition that says if the bugging property is true append the quick uh method call to your code so now you can sort of make this data driven and have a system property that turns quick mode on or off and have that control you know how your code is executing nice that that's that's really interesting i yeah i was kind of wondering how they work together so it sounds like they're kind of independent you use quick and it kind of bypasses all of the other debugging things no matter what you have them set up it does yeah and i think there's kind of an assumption there that if you know you need a quick use case this is something that's high performance you also need to do a little bit of additional you know thinking about how do you want to implement that how do you want to make sure that if like say you have a production problem you want to see what the results are how do you actually turn quick off because sometimes you you need it off but um but yeah it adds options and just makes it more flexible yeah so there is a there is a chat going on josh you responded to a a little bit uh but it it seems like the question is really like i want functionality that shows me hey if somebody makes a change to you know flow designer integration hub can i look at the change in the previous version and compare them uh you know which we don't have i don't do we have that for workflow i don't even remember whether you could do that in yeah workflow don't believe you could and if you could it i don't think it was very good um probably not so yeah i mean there are some thoughts around the future there uh what i would say is in the short term you know we very much integration hub and flow design are part of the broader platform ecosystem and so we leverage source control and git so you can use things like tags and branches i also believe you can do selective commits so you can do the files you actually want to commit and so if you're like hey i'm just doing a data stream and i don't want to commit all this other stuff you can do that yeah and stashing in san diego got a little bit more you have a little bit more record of what happened when you do some stashing so which we're going to explore on tuesday actually awesome um so yeah but yeah and then it worked and i mean again what is this only 15 minutes in 50 um yeah we created a we took a spreadsheet created an app from it created a data import stream of it and created a data stream of it and then converted it to a quicker process and showed how we could do it in a quicker process all within 15 minutes um all within uh like not much scripting um only at the very end but that's usually more intense stuff that people are doing um while i was drinking and while we were all chatting with each other about other features too i um i always uh think it's great because i remember um when i was my first position that had servicenow as a tool i was a fist this is part one some of you might know the story i was a facilities coordinator but part of the facilities team so i was in between scheduling and talking to contractors and stuff like that i was helping uh unclog the toilet climb on the roof and clear out the slumps of leaves and stuff like that i was doing all that stuff at the same time while trying to do a facilities portal on servicenow and deploying um some security processes for our security team like i was doing wild stuff because they um they said it they saw that i had some database experience they let me build stuff for them but um i remember thinking how great of a situation was it because service now happened to be so easy for me to get into and learn while i was doing at the same time and um if i think about like who i was only four and a half five years ago or something like that in between like uh putting furniture together for the for one team and then scrubbing the toilet for um um right after and then learning service now on the side like my life has completely changed ever since then like all the positions i've had before before now and where i am now is just like oh man five years like people ask like where do you think you're so we'll be five years ago oh in five years if you asked me that five years ago no way would have known any of this stuff but now i think about it now in san diego and all many how many releases since then i think i joined during helsinki days um and now we're in san diego like that barrier to entry is getting smaller and smaller and smaller and um i have fred i put that out there for my friends like yo like if you want to learn serious now just come talk to me i'll sit there and i'll train you because i don't think it'll take very long and i might be able to change your life because it changed mine um pretty incredible yeah that's my sentimental two cents i get like all sentimental and it's just no like my life has changed a lot since learning service now and um i have a lot to think for it and i have a lot of people to thank for it along the way too from meeting random people at knowledge which is what got uh i went to a conference and i went and randomly talked to a random person two tables across that was um for breakfast and that's the person that gave me my first service now job i i do miss that from knowledge for sure and meetups although developer meetups are happening uh so if you are i don't know if you live on earth go go find your closest developer uh and maybe there is one within driving distance do we have a short link for meetups yeah it's devlink.sn slash meetups i think they both work actually and then they go to two different places so if you if you're itching for that in-person direction that we've all been starved from for the past couple of years meetups are starting to happen again um uh more information about knowledge is coming through the pipeline we're not gonna say anything about that we don't know enough information right now about it but more information about that's coming up but meetups are happening people are getting to see each other if you um that's a great place to network i i've started going to um a bunch of random around the country too and it's fun meeting everybody there uh other san diego content uh can be found at devlin.sn san diego um any other announcements from youtube yeah no other big announcements uh we did have some conversation about like background scripts and syntax highlighting within background scripts there actually is a like a new team internally that's taking a look at the overall scripting experience um and so so i'm kind of excited about uh where that might go um so yeah i think that's there there was also a comment about hey just do background scripts in the vs code extension that's absolute absolutely a good option uh is to install that vs code extension it's really easy to run background scripts within that extension and you get all of the nice vs code stuff as well so that's if you know you're going to be running background scripts that's a really good way to do that is pull it into vs code um yeah i think uh i think we're gonna uh josh any any closing thoughts uh any anything you want to share around integration hub or anything i i mean it's just it's it's getting me back and and nice work girl on those demos uh the uh yeah it's cool to see integration of import and some of these things start to take shape and we're excited to hear how you know everyone experiences them and wants your feedback and watch your you know good and bad and otherwise so awesome all right well i think we need to rate our drinks before we go uh earl uh you we have the success boost on there what are you gonna rate it if it's a success boost it's a it's a clear five it's a clear five nice nice all right uh so the symbiotic cell rail it's a good solid four that's pretty solid then yeah i'm also gonna go four with the success point with the whiskey butter porter it was it was okay now i'm gonna drink water i came prepared for that nice all right well uh again we're in the midst of our san diego season we've got creator toolbox at 10 a.m central on tuesday mornings live coding happy hour at 3 30 p.m central on friday afternoons so we will be here every week we've got a blog posting at least once a week we have the breakpoint podcast posting every other wednesday where chuck will be interviewing people uh primarily around san diego features uh i don't remember what the next one is but there will be one uh so stay tuned again devlin sn san diego that's all of our content uh all uh put together in the list for you um but uh thanks everyone have a great weekend and uh we'll see you next week bye everybody bye bye [Music] do [Music] okay
https://www.youtube.com/watch?v=_B5m3gcihqI