logo

NJP

Paris Flow Designer - Live Coding Happy Hour for 2020-08-14

Import · Aug 15, 2020 · video

[Music] so [Music] hello and welcome to live coding happy hour i'm your host andrew barnes with our married collection of friends here and today we are going to do servicenow live coding so this is completely unscripted uh you know somewhat planned but unscripted live coding development on the now platform so let's introduce uh everyone on the show today we got a whole party here uh we'll start with brad hey everybody my name is brad tilton and i am a developer advocate with a developer program here at servicenow i've been developing on servicenow for almost 12 years as a customer partner and employee for about the last four thanks brad and let's introduce brian hey i'm brian bim schlager i am a product manager here at servicenow for flow designer and process automation designer i've been at servicenow for just about three months now but i've been working on all sorts of workflow automation tools at previous roles for the past couple years awesome and closely related to you brian is jake hello everybody jake berman here i manage our our workflow and integration products on the platform business unit for servicenow so everything that's flow designer workflow automation integration and so forth awesome thanks jake and chuck it's my hero hi my name is chuck tomasi senior developer evangelist at servicenow been here for about 10 years was a customer for a couple before that and uh i love fridays because we get to do this oh it's it's my favorite way to get into the weekend and i'm andrew barnes uh along with uh brad developer advocate here at servicenow i've been here for two years uh been on the platform for a little over six years and just super excited to to have the product managers uh on with us today for our flow designer focus week uh so if you've seen all the blogs uh this week they've all been related to flow designer i think we had four of them this week uh which is a lot for us because they're doing a lot of cool stuff in flow designer and some of them have multiple topics too so it wasn't just like four articles there were probably 10 or 12 things in there yeah and so um let's go ahead and introduce our drinks in the same order all right today i have a rusherford tin it's a trappist beer that i know and love all right i have a mike hess brewing steel beach american lager that the green screen is not picking up and i have a stone delicious nice i've got one from mild stomping grounds the lining kugels summer shanty so if you're in the area and you want to sound like a local you ask for a line yeah i went i went a little lighter than usual today so i've got a hard cider from uh blake's called fido all right awesome we got our drinks we got all the people um this is going to be a lot of fun today so um we're we're super excited to have jake and brian with us joining with us um so at the end we're going to do some questions and answering sessions with them so if you've got some flow designer questions burning in your mind throw them in the chat and we'll get to them at the end if we don't address them along the way and work you know think about it because when someone asks you immediately hey do you have any questions it takes you a little while to warm up to to a question but you've got about 40 minutes before uh we're gonna say again give us those questions um so chuck what are we gonna do today with flow designer we are going to continue our automation as we get my old community live stream app closer to artifact manager we're i'm still going to be maintaining for an interim the records in the cls app but we'll keep things updated and we recognize some gaps as andrew and i were having some design sessions offline and we said that would be a good topic for this friday let's continue to build that because i've i've built out most of the automation well prior to us redesigning the whole data model yesterday based on the current data model this should work really well uh we have an opportunity to uh show off the branchless make a decision action or logic because i've got to i want to keep the cls states they have different values in sync with the artifact manager states because when brad and andrew look at a record in artifact manager i wanted to reflect accurately where we are and it wasn't a one-to-one mapping either so i've built most of the decision table based on my previous ignorance until andrew and i had a discussion yesterday so we've got an opportunity to add another decision we're going to put a make decision on the flow we're going to do it branch list because i want to use the answer record as the update activity because nine times out of ten i always have these branches off of a make a decision and it's update a record except for that one value update a record except for that one value oh come on so now we'll be able to show that off we are also going to um i'm trying to remember what was left we'll hit some other uh features along the way but for sure we're going to show off the copy action and i've gotta probably highlight a couple of others that we wrote blogs on this week um and and use them as as appropriate just to catch anyone who didn't uh watch the previous episode on this we're merging two at servicenow apps that came from different instances and we're serving near similar purposes but uh you know we're designed and built and maintained by two separate people so we've got them on the same instance now so we're merging two processes and we're doing this in a staged manner so we've got them in the same instance now and then the next step is tying them together closely so that they have a bi-directional sync and aligning their processes closer and closer until we just merge the two apps together in some places you'll you'll never merge those apps together you'll just tie those processes together um whether or not they're steven servicenow processes i don't even know that we'd have a bi-directional my vision is to get rid of the old cls app and do everything out of artifact manager if it does everything we need why have two that's a good point um i i generized a little too much there see we're still designing as we go we are this it's really hard to pretend uh that this is uh scripted at all because we make it up on the fly while we're here indiana style is there anything uh that uh either jake uh you or brian would like to share before we get our hands in flow designer and get dirty i think we should just get started all right let's do it show me don't tell me show me uh host has declined attendee screen sharing that's all for me thanks see ya brad we'll fix that is that me yes sir just click the the share thing and then there's properties all right yeah try it now yay okay yay let's get this as my friend is called let's get this sharon okay so bad puns aside i have a cls record community live stream and this is the application where i rolled the process of getting things ready i think about it beforehand and i jot down some ideas and eventually i get a youtube link and broadcast and then there's some post-production sounds simple doesn't it well this is very similar i've got community content i've got youtube content that goes in the description i've got a video id a lot of this is also available either directly on the artifact record here's its counterpart we've already built the part where it says oh hey i don't have one of those let me go make it for you so i'm just copying the data over to another record and i've got two tertiary records for youtube and community content like the html from my community description is down here so you can see that we'll automate that so it publishes to the community and we'll have apis and doing all this automatically eventually but what i've got today is this state is still being manually updated by me and you know you can see there's idea needs research pending future version six seven states in here as opposed to the six that are here well look we both have idea we both have collect we both have oh we don't have cadillac we have complete published they don't quite align one for one so what i did is made a decision table actually i started out with something that i had for a completely different purpose the states up here aligned very closely to the tabs down here so i made a state rule table that said oh if you're in this state i want you to automatically highlight this tab client script scratch pad it was fun but it was kind of annoying after a while because i kept wanting to go places that were on the non-selected tab so i turned that off but i still have the table and it dawned on me that i could i can reuse that i can reuse that because it's got all the states i need in it i'm just not going to use the condition so let me bring this up in studio and in my data model tables is my state rule and it has a number of things including a new artifact state table that is tied to the choices on the artifact manager table so i don't have to recreate those states i look at my state rule table from my community live stream this is basically my answer table to my decision table here is ignore the conditions and some of the names but we have the community state artifact state right doesn't get much easier than that and i have three that align to work in progress i'm doing community content i'm building out the youtube content a lot of this stuff is pre-production and then there's post but what andrew enlightened me to is the artifact manager has a state called ready to publish and the definition of that is you're all ready to go it's just that the time has not come yet to do live code happy hour at 4 30 eastern time it's thursday afternoon but we're ready to go everything is set up and going i said oh i need that because there's a difference between work in progress and done there's there's a median in there so let's go and quickly update the rule table so i'm not going to bother with a whole bunch of things except a name and for us we have automation that that happens on that ready-to-publish step so it creates that live stream entry because i'm done with the text but it you know we haven't actually finished or done the show here's my quandary i don't have a ready to publish so andrew suggested why don't you add that before you add your state rule silly boy not that one i want my community live stream episode record that i was just on and let's go add one you all have done this in sysadmin class 101 i go to configure choices or show choice list or whatever your favorite is and say ready to publish i like that you point out that it's definitely a preference because i never use this one really what do you use i'd go straight to the dictionary every time you're hardcore man i don't want to deal with a related list if i don't want to i'll often get a form designer i don't like to have to do a label and a value so i just like give me give me the value well part of it depends on where you add it from also because i've noticed if you look at the show choice list the way i did it look it came out with a capital r it doesn't always do that these were added somewhere else and they came out as lower case so for consistency yeah and i like i like to be able to control that which is why i go to the the dictionary so that i can see all of the stuff and and form designer will let you do the same thing is control the value and the it'll even pre-populate it i think with lower case yeah i just like to see the other ones too so that i align to whatever the format is like you did here which was oh so if they're if they're numerical i align to that when i create new entries on the values we now have a religious battle ladies and gentlemen leaving your spaces you're going to bring some religion in too yeah yeah you're right you're right and uh there used to be a problem this is one of my the hardest things i ever found was when we were adding choices through the uh configure choices the way i just did it i was hitting tab enter to create it and it would put percent 20 in there at one time this was like back pre-geneva i think it was it was either geneva or helsinki when it was fixed and marcy palin one of our video scriptwriters says i don't know what you're talking about i can't get it to do that because she was clicking the add button and she wasn't hitting tab right that minor difference put in those percent 20s and mess up things like ui policy condition checks so i remember that it's like where are these coming from they're always there so go and replace them with underscores the the spaces don't seem to be too detrimental anymore so i've been okay leaving it that way for now but yeah jake probably has some stars too [Laughter] so now we can add our new entry in the state rule table right roll ready to publish the state is going to be ready to publish the artifact state will be ready to publish i don't need any condition because that doesn't matter for me that's what the table's original use was for now let's go to my decision table because i need the decision for that in the cls artifact states i'm an old timer cls to me means clear the screen but that's amazing it's just nice burned into rom okay new decision label ready to publish as good as anything for me can i blame it on the new glasses um i don't remember my ordering but this should probably be about 500. we'll look at it on the list i want my answer record to be the ready to publish record and i don't need a condition on here yes i do i need cls state is ready to publish that's my mapping okay decision table entry made how are my numbers close but not exact this one should probably be 500 and this one should be 400 better and so here is where the the sort of the interesting condition one would be the work in progress one since you have three conditions for that right right this one is if i look at this one it says you will this the community state is one of these then set it to um the label is work in progress and my answer record comes out of one of these which they all point to the same thing so it's it's fine with me yep i like is one of that one snuck up on me at some release too it was one of those things that we was going is this or this or this or this yeah it's one of is a very nice feature so we have our decision table made our decision now decisions made there our input is simply what is the current state or community live stream record and i will spit out an answer record or that you can use in your make a decision these are really cool so it feels like we're ready to go to our favorite place uh-huh over here in flow designer yeah i enjoy brian's new found love okay my flow is very simple when the episode record is created it goes and uses this subflow i created a subflow to act as a librarian function because there's times when i may want to call this from a ui action or who knows where this does all the details of what do i need to do when do i need to do it am i updating that community article and it keeps the flow as the trigger but i could still have inputs to some of that other stuff let's and then it returns out an artifact record which i then say oh well let's go update the episode record with the artifact so now they're connected i've i've created something and linked it back to my episode let's take a look inside here i like this icon too because no matter where you are you can pull up an action you can pull up a subflow without having to go back to the menu and search for it navigate and whatnot so pass in a couple of inputs to this subflow it passes out an output record and here we are saying go and look up the author let's make some community content i absolutely love the create or update as well how many scripts have you written in your life to say does the record exist if it doesn't i'll create a new one and fill it full of stuff if it does i'll fill it full of new stuff this is an upsearch has been long overdue in this platform and that was orlando i think so i think that was orlando it's hard to remember that far back you do realize that some people have this on this call orlando i know that's why it's funny all right here's here's the part that i wanted to do just for fun you see this this is a pretty involved record update or insert i just have to click this icon just because it will duplicate everything in there including the annotation which i love so this is a copy of this woohoo in new york by the way oh it was new york all right you're off so so uh brian or jake um we we do love the duplicate action um so how hard was that to to implement was that a was that tricky to do or was it uh you know relatively easy in the in the scope of flow designer stuff like how tricky was it to be honest it was so tricky it took us what eight nine releases to get it in there oh it's gonna it hasn't been out for eight or nine and ask for a thing but copy and paste is really tricky when you have data flow meaning i've got data mapping if i copy a flow that's referencing a thing that's part of the copy like copy multiple it gets really tricky but something we could do really quick kind of a quick win while we're prioritizing other bigger shinier features was duplicate duplicate was relatively easy and we were able to sneak it in um this this past release so pretty happy hopefully it's it's helpful um and we find that at least in our authoring and when we go build new integration spokes and whatnot that's what you're doing most often is you you want to do something you know multiple times and it's paying to go re-author everything so it's at least a stepping stone to get full copy paste working eventually we will do full copy paste i i know i've already taken advantage of it and it's made my life easier already so i i appreciate it so yeah when i go when i presented uh some paris features to our dev mvps that was one of the few features that had an audible uh clap uh when we when we showed it so that was a good one we're getting some interesting comments from the youtube feed so i'm going to play along it won a bob ross version of this we're going to we're going to paint a happy little make a decision action right here happy little action two and action three notice that in the actions the numbers are flattened now we don't have an indent of four point one and four point two point one this is a lot simpler okay let's take it ready that is a paris feature yes that is a renovation yeah and i'll add some color there uh we've we have a lot of uh user feedback and and i think this is like saying workflow or flow which one do you like some people like it some people don't but having like a nested if within an if within an if within an if i have 1.1.1.1 if i do the next numbering and uh and it gets it starts shifting to the right it gets hard to even identify you know those the repeated numbers and so it was proposed to go with a flatter simpler approach to be a little bit more consumerized so you know if we get enough user demand we might introduce a property that allows you to set a user preference right now we went with a simple approach um to address some of that that pretty loud user feedback i like it it uh i was having a discussion with dave slusher and this will come out on the breakpoint podcast next wednesday on the 19th um you'll be able to get that but it's one of those things that when you're designing the software seems like a good idea to have that outline format but then as you use it you discover yeah maybe that wasn't such a good idea and you know that's why we have customer feedback is to let us know and we can adjust absolutely and hilariously like i think for me one tier uh you know i it's almost a mix for me like one tier in i i kind of like just the one dot like you know 4.1 but as soon as you get five and six tiers i'm like oh yeah that's yeah simpler simpler function here please especially if you have to get into the inline scripting which was 4.5.6.2.1.3 oh forget it you got it yep been there uh so now we're ready to add our uh decision tree right a decision make a decision programmers this is kind of like a switch statement and we're going to point it to a decision table that we've already made called cls artifact states and i really only need one decision but i could pick either all or if i did have conditions that matched more than one for example if i'd put in all of those work in progress states rather than have my other table filter yeah i could have done that now right now it says use with branches and it pulled the decisions out of those labels that i had before there's our new one ready to publish of course all of these would be just saying okay here's the answer go update the record and i'd be updating the artifact record here here here so thank goodness for copy action but i'm really updating it at the end here so what i'd like to do is i got to select my state and i'm not doing a static state the state will come out of the episode record so let's go get the episode input is state there's my input and turn this off otherwise it's been around for a while that's kind of your default on a switch statement it's it's if i don't match anything in this table what do you want me to do so it says look you're about to turn these off and anything under here is going away so if i had built up some logic under each one of these branches gone okay you don't get it back by turning the check box back on it's gone so use it understand at the beginning is usually a good time saver to avoid that hazard all right now look what i get over on the right let's make a label here find the artifact state put that in and my decision doesn't have any branches under it but it does have the state rule record these are my answers that's my answer record with all of its goodness which i want to use when i go and update the artifact because down here i'm going to modify this state field to be my make a decision state rule artifact state that was tough bam okay should we try it that's that's some victory right there i'm going to take you off script a little uh you use decision tables well um but pretty flat use case i want to highlight a couple things again off script but you know we'll try to make it fun there is no on script here jake so happily to hurt us make a decision is using decision tables decision tables are incredibly powerful inside of flow you can use it for tree logic meaning i'm making a decision tree i want a branch based on the path taken by the answer that's great when you've got a use case that has select paths you know one you know multiple especially if there's more than one but when i want to get an answer when i just want to get a value that value could be in the real simple example might be give me the parking rate for parking garages and i have a hundred thousand parking garages i don't wanna see a hundred thousand branches i just wanna get the value what's the rate parking rate based on arbitrary inputs so you you follow that more second case where i just wanna get an answer right get the state value so the thing i'm going to take you off script just to highlight another feature that got launched i think orlando i'd have to go back and look is is transform functions if you go down to uh go down to where you did your assignment um your creator update creator update artifact yep and you added the artifact effects yeah let's say you had done a instead of doing the artifact state you just took the original state the input the cls you could add a transform um if you go down to utilities and what is that yeah so this is when it's less so the value of the decision table is without modifying my flow without creating an update set of changes i could add new rules right my decision table independent of my flow i've separated and you can delegate those if you want to with the right permissions you could say hey process manager you're in charge of the decisions when are we getting to gold status or when is it four percent discount or you know that kind of thing you can say push that off to them and you don't have to maintain your flow but tell me more about this key value map i've somehow missed that so this actually came i think in paris it was an ad we missed it the first time but this is name value pair so if you could click the add button there on the bottom it gives you simple key value pair matching so it'll match the source value of you know whatever your original state is to your yeah there you go so it could be you know idea equals community or you know published equals community or whatever your mapping is this is a real simple way to do mapping and it's useful in things like hey i have an incident priority and i want priority one actually equals the word high or priority two equals the word medium but it works great for this use case as well it's just a simple way when i don't need to decouple the condition logic the decision table um outside from the logic when it's just ad hoc key value mapping this works great this would be a clearly a testable thing that i could do but do you know offhand jake or brian when i'm doing this is this comparing the value i'm sending in or the label i'm sending in it would be comparing the value yeah so it should be like this so it's it's his value in his data pill and then you put it to the value that you want to store in the new location right that's great okay okay cool yeah that that's an excellent case and and uh i do recall those things and yeah key value is paris and the transform functions was was orlando so these are all 2020 stuff here that we're looking at simple math now oh those i think were there i was looking for you know a plus b equals c darn it we'll get there we'll get there nice well thank you i remember that that was one of our first uh actions custom on the show chuck was you made a simple math uh a action all right i have to make sure that i don't have a transform function no it would show up right i'd have the pill or the the icon on there okay i did hit cancel appropriately neat that's why we brought him along andrew yeah i love that extra context okay so we saved that the next one's gonna be brian's though and i have episode record that is currently in where's my episode this one is currently in complete but the artifact record is published that's not helping me let's move it to something else okay ready to work and here we'll just change it from the list ready to publish and so our expectation oh it's got some rules it's got some rules you can't change it out of complete i think it's based on what's on the form it's like hey you've got all these things filled out so therefore i think my state is being auto driven based on the content on the form um out of complete hilariously though that should have then on and com unless it did a full abort if you just do any update it'll move that artifact to published right but my flow isn't updated yet so i wanted to test it so let's i we can still test it yeah we can still it'll move it to publish which is fine who is me and we don't have change state values in here so it's just going to look up okay that's in the flow run run run run run run um before you click okay here i'll go back what do you want new pairs feature right here on the screen with us is run test in background yeah so yeah so you can uh when you're executing your test especially for those longer running tests uh that you want to be able to do something else in your session run test and background yeah very nice especially if it takes a while and you want to look at the logs as it's running like i got a hundred records like a data stream that takes a while and right there and if it gets stuck you can still cancel it all right oops wrong tab i want oh i can't get back you'll have to hit cancel to switch to the no i can click it again it'll just bring up the same thing all right so we updated this and it says completed is that was the document id of the answer record which says your artifact state is published and if that works then this should say published down here do i see it do i see it that doesn't tell me anything state published where are you seeing that down near the bottom oh that's still your record i think didn't it no that's the artifact record oh lovely then yeah because i put these i also have kind of a focus we also have it open in uh tab two right we do have it open your browser tab yes we do oh look at that there it is a little heartbeat indicator just to modify this value so i call that a success let's publish that monkey yay that's a drink cancel publish all for one data pill that was easy i'm i'm slowly retraining my brain to use flows and sub flows over business rules and schedule jobs and all that other stuff they're they're definitely uh muscles we have to trade right you've been doing it forever the longer you've been doing it the harder it is to switch right we did our we did our duplicate action we got our decision table in the sub flow we don't need to do anything to the flow because this is going to call the subflow uh we got a few minutes what else did you want we've got a few minutes uh so we we hit a good uh point in the you know we we accomplished our goal uh today it says wait for paris so i can do the branch list make a decision [Laughter] see it's like i don't need that anymore i put little to-do's along the way little stories to myself that's great um so one thing that we wanted to uh that we'll go into more next week when we're doing integration hub but is a flow designer feature um maybe maybe we could just take a second and go look at that i didn't do any of the prep for it but um uh the the content rules um so go to your flow right and hit the properties in the for the flow yep so here uh we've got this run as system user and the other choice is run as the initiating user so whoever's hitting that trigger um and there's some uh you know there's some limitations uh that that existed uh pre-paris with that in that you know sometimes system was too much and the user who initiated was not enough and we needed something between those two things um so i'll briefly describe the what i think the feature is and then i'll let uh brian jump in here with uh a little more uh framing for it um so we can then down scale a little bit from system to the keep it who the the user who initiates the session but also add a role that can accomplish the actions that are inside my flow so for example update a record that that user can't update themselves but that's appropriate for a flow that they could initiate to update um is is a really good generic use case that i know of for this so brian why don't you give us a little more color around this yeah i mean one of the requests that we've been hearing for a while is helping uh people to just add more permissions around who can do what you know to be more granular in terms of letting more people access the content um so that's one of the things that that we're doing right here um what is cool about this is when we say run with role still only the flow authors will have edit or we'll have rights to edit and publish that flow so you can still kind of control who has the ability to create and actually modify the content and this is really about specifying who can run it so from an admin perspective you do get a little bit more uh control and security of making sure that your flow is not going to have any material changes to it accidentally as somebody and and with that description sort of leads us into that other paris feature um which is uh narrowing down what flow authors can see and manage in their flows right so if you hit cancel check before we um before we move on there's been a question asked to me at least a couple of times is there any impact to licensing by granting people temporary access in the flow to say all right here's your artifact manager admin role is there any impact that they should be aware of in terms of costs um i'm not sure the qu i'm not sure exactly the intensity so ultimately you're you're elevating permissions for the execution of flow flow design is a platform feature and and there's no cost um let's see if you were to have a non let's say you have like a a casual user right not a fulfiller somebody with a login but no roles right go run a flow that has elevated privileges oh that's a really interesting question i uh cause you're temporarily entitling them with this role it's not like you're applying it to their cis user has roll record and saying it won't be counted as as as a licensed thing in our audit or and that's no different than running a system like with a scheduled job or anything else that might happen behind the submitted you know end user things so i'm gonna go on a limb and say no no there's i've been thinking the same thing too but i haven't gotten a 100 absolute answer on that yet and i think that the reason for that might be that um the the normal use of it is probably fine but there's probably ways to abuse it that do violate uh your your contract and get into some licensing implications yeah which is probably a fair assumption because that's true everywhere we give a lot of yeah we don't explicitly audit anything about this flow designer is a free-to-use product in the platform and all we're doing is allowing the flow author to explicitly state how this flow should run so that you can have known outcomes when you're working with things like password resets or sensitive data or security data like you know security incident response and then the other thing just to build on this is whatever role is specified there the flow author must have that role um to actually publish it so it adds that as an extra security layer if i'm a flow author and i don't have rights um that flow becomes read only for me so if i don't have say security operations or better yet i don't have hr uh hr uh any of the case management roles for html and i open up the flow that says uh you know off board user i can't save it i can't copy it i can't run it as a flow author okay and then going into your next feature you're gonna highlight you know you can actually hide those from those those users as well but it's just an interesting you know outcome for this particular feature and something that dave and i had in our conversation was in some ways this runs with roles actually gives you more control and you'd be less likely to be spending money on allocating roles to people who just need it once a year to run some flow yeah it you don't have to assign that person a full-time licensed role just to do a little slice of their their job description you can assign it to the flow and go there you go it's not abusing it it's actually giving them more control and controlling costs well a great fl a great example of that is uh like operations so incident management an event comes in it's die you know let's say we had auto automated triage happening and we we know that the situation requires a server restart well that help desk or service desk admin doesn't necessarily have rights to log into a server and reboot it so we want to give them a flow to do it but you don't want to give them the full reboot any server all willy-nilly you want it to be governed and controlled through the automation you built so you build it with a flow you give them a ui action a button a thing piece of automation into your helpdesk workflow so that when it is a known remediation they can progress it forward and have that reboot happen in a controlled way so so that's exactly the intent behind it yep so the next and last thing i wanted to highlight on paris before we move into our question and answer is chuck is showing now the the list of spokes and their actions that we have available to us as admin um and that's not always appropriate for everyone um and many many times it's definitely not especially as you get into delegated developers um and you know expanding out your uh folks who are creating these and managing flows um is you know we don't want to expose the microsoft azure 80 or the spinning up vms or the managing hr case uh you know integrate you know an integration to an hr system uh to all of our flow authors we want to narrow that down um and so uh brian why don't you just give us a little more flavor around that and then we'll move fully into the q a yeah so it kind of uh builds off some of the permissioning that we talked about at the beginning and briefly just touched on right now so what uh chuck is navigating to now is we'll be able to specify uh you know what content is available to particular roles so if we want certain spokes to be hidden certain actions to be hidden uh we have we have the ability to define on a role level who can view what when they're building out their flow designer yep and so this is based off of these uh these two tables here the content filtering rules um which relates a content definitions to a role and then the content definitions is the uh how we group and bundle together the actions flows subflows and triggers right uh yeah jake do you want to add some more context there yeah no that's exactly right so if i have for example that hr analyst i could have a series of content filters that are just for hr analysts currently this is more of the authorized list so instead of a authorized unauthorized um separate list it's just anything it's additive but it gives you that um ability now to say here's my security analyst they can see the security stuff here's my hr analyst they can see the hr stuff and then here's everything else and that way you know people with flow author rights don't have to get overwhelmed with everything they have all the content just for the role um right now this is works for in paris for um actions uh flows steps within action designer so it's like protocol steps and the flow logic so if if make a decision like we reviewed today and so forth so you can set up a rule on all those pieces of content and we ship those uh examples out of the box here in the the content definitions right yep yeah and we'll be in improving this um with more controls uh in future releases as well so things like you know copy or or um show code snippet or set the you know the run as permissions so those things that are more um capabilities or features of flow we'll be able to restrict based on you know security permissions as well but that's coming in the future right now it's all about content so let's drop out of share chuck thanks so much for uh driving uh today and uh hooking up that uh uh decision into our flow uh and so now we'll do a little question and answer uh which we've basically already rolled into some of it a little more prompting hey someone snuck in here oh we did sneak someone in so uh you know frequent uh guest of the show why don't you introduce yourself andrew hey uh my name is also andrew you might know me as upside down andrew alberto i work at an insurance company in australia i'm one of the dev mvps and i like to consider myself a fla advocate um one of the advocates of flow designer throughout the servicenow community so i'm really excited to be here and i saw the topic come up on the youtube channel i messaged andrew and i was like i wanna i wanna get in because i love flow designer and i wanna talk to these guys that is super excited so we will yield the floor to the first question to you sir oh geez it's 7am you answer a lot of questions for other people yeah you don't get a chance to ask the you know the visionaries behind flow designer questions very often you can defer and pick it up later i i i was thinking one thing that does come up a lot um for myself like even this week i was working on stuff that had this problem it's all around error checking and error handling in flows if an action that you've created fails or if something goes wrong quite often you have your flow kind of hang and it breaks steps out of a continuing condition and that might not be exactly what you're imagining is there something in the roadmap to look at sort of error handling and floats uh absolutely so short answer absolutely so yeah the the recommendation right now is to to work around it by setting up um logic where appropriate to to capture that result now we did add some improvements so like lookup record would always fail if the record didn't exist i was gonna mention that one yeah that's a good one well we fixed that or we we improved that so now you can configure it to say don't fail just continue uh in which case you could then do like a if this than that or uh some sort of switch case depending on the result of that previous step same thing with with actions you know if you have uh a rest call and it gets a 404 error return the right you know return that um the error state you know in a in an output so that then the flow can then use that to say if 404 then don't go down the path that would have used that you know that standard uh content result um that obviously only goes so far and it's kind of a pain so we are definitely um that's a high priority frankly it's it's next on our priority list is to really awesome up level what we're doing for error handling so you'll you'll see that in um you know a couple release time frame great yeah that's awesome so uh get your questions in the youtube chat if you have them uh you know we've we've got a few more minutes with these uh awesome folks um and i'm looking through them to make sure i've caught all the ones uh right now but uh let's tee up another one um that that i uh you invoked earlier which is uh on the the copy you know when i'm in one of the one of the things that uh i found myself doing previously was uh there's sometimes uh in some fields where i can like copy the data pills and paste them somewhere else and there's others where i can't is that something that uh you know we're looking to enhance maybe in the future this so that we could uh you know i know we talked a little bit about copying like whole sections but like they're they're you know if you got like a long form field and you've got a couple of data pills in there and some text you can copy that but like a reference field i can't is that is that something that uh yeah obviously you're not don't need to commit to this but is that something the kinds of things that might come down the pipe yeah the i mean that's an interesting problem because think of like a boolean check box it has a data pill assigned there's no content just can't like highlight and select it and then so we're already offering the data panel on the right we're offering the pill picker to not walk to it is it would it be helpful to have some sort of thing like a you know context menu or something to say i want to copy this pill into memory or command drag and it keeps a copy okay yeah for for me absolutely because frequently i've got at least how i architect things i've got a lot of dot walking that i do a lot so my things are many tears down and i'll need the same thing more than once in my flow okay so i've already been there before and i'm like oh but it's a reference and i can't grab that one what one thing that we had thought about and and we i guess i really do welcome the feedback and brian you know see this up in your backlog one of the things we've considered is in the pill picker is to show like a recent you know recently used oh that would solve it for me so like as soon as you hit the pill picker the the last thing you picked is right at the top or right in the top of recently used so that you just see them in the order you've added them um it's something that yeah thanks chuck yeah how did you give it to me yeah so that was sort of the the you know the one i gave an example of how i would consume your requirement but the requirement is is i'd like to be able to get at these data pills that i've already used and so i think that's a good example of a case where i outlined uh here's how you could have done that but that wasn't my true requirement and yeah how you deliver it ah i don't care just give me a way to get to them and we as developers do that all the time right someone will come and say i'd like you to be able to blah blah blah and then we're like hmm that's not how we should do it but here's fulfilling your requirement that's behind that prescriptive request then brian maybe you could talk about one of the things coming in the next release about recent oh yeah um yeah kind of a sneak peek into what's coming up uh we have some updates to the action picker so when uh you're looking to add new actions to the canvas we actually do have recently used coming up so if there's one action that you use over and over again or you know even the example that you showed earlier today chuck you know if you didn't know about removing branches from a decision table and you're going to use that same action in each branch well uh in an upcoming release that action would be at the top of recently used to quickly add that's awesome so one of the ques questions i saw was around uh run an atf test via flow that exists kevin um that was an orlando feature um so that that one does exist there is a um that's a that's packaged as a sub flow i think is to to run an atf test which which can be local or remote yeah it was part of the cicd stuff that came out in orlando so i i think that's a sub flow yeah the the other one that gets asked a lot is about flow variables aka the old workflow scratch pad any thoughts there well i'll fill that so we actually just due to covid and some health issues within engineering it slipped from paris so it's definitely going to be it's definitely going to be here in quebec um uh so flow very we're calling the scratch pad flow variables and it's it's more declarative right you can declare your variable type so yes you can create a string and call it scratchpad and it's a string for json blobs or other things but you can also create a complex object a json you know a string an integer a reference and declare a variable that is now mutable meaning i can set it and i can get it and whatever i set it or get it as is is the current value instead of this passing inputs and outputs which are immutable their point in time reference for logging purposes and else you know and so forth so that's really exciting beautiful variable that is super exciting it is and i assume that it doesn't matter where in the flow depending on the depth of the branch or inside of a for each where you set these values they're kind of global incense they're global for that flow they're they're like a friend right across your flow so the most common use cases is in iterations in loops right i want to set an index i want to increment that index or concatenate something for each loop so that it just builds and then outside of the loop i want to reference the result of that and uh there's lots of different use cases but that's kind of the most prevalent like that comes up and smacks you to say how the heck do i do that there's a couple there's a couple ways to do it today uh but i don't want to share it on this call no it's i i agree how do i do it if you want yeah that's definitely the appropriate use of our last time so um tee up your last thing andrew and i'm gonna throw uh just one out there for me which is is there um do i do i just not know the best way to do this i've found sometimes when i'm when i'm doing i believe it uh when i'm when i'm doing some more complex flows and i have uh touching the same record over and over there's cases where i need to go refresh that record is there any thoughts on how to to go get the current without having to go set up a new query to go get the record that i already have a data pill for but i i need the current information for that record this is something we've considered reintroducing a current the idea of current the challenge is no matter what it is uh it's inefficient to always hydrate current except when you're absolutely yeah and so so far the design has been pure meaning the data is only hydrated at the moment it's referenced which is a little tricky inside a flow designer if i go fetch a record but i don't walk into a value until eight steps in i don't actually hydrate that value into memory until eight steps in so between steps one and seven some external outside of the flow thing happened to change the value from what it was when i went and fetched it to the evaluated when i first referenced it it's getting that value at that point in time when it's first referenced hopefully that made sense i heard myself say it all and it was a little complicated uh i got it the point is today we don't do current right we get the data the moment it's needed and that gets you in trouble to say if i like i get the state and then the state changes and i go reference the state and it's the state i fetched that because when i referenced it it was whatever that pre-changed value was that's exactly the scenario i've run into whereas i need to evaluate the current state and so i'd have to do a new query and i you know i'm not i'm not upset that i have to do no query i just wanted to be a just a little bit easier uh yeah right now i think the the only recommendation would be to create an action that does that instead of an action for that single purpose to say get you know get current just as kind of a standard output for the input record you want so it does it a little more seamlessly within your flow versus nesting the three steps of lookup record get the results that makes sense and i think i think i'll turn that into act reality i think i'm going to make an action that does that because i uh my current stuff i i've definitely used that um and even some of the workshops i've built and needed that and so yeah i like that yes i think we should take a simple action but it is something that has come up there's probably some community posts about it and it is in brian's backlog it's it's somewhere in that what's the backlog so more noise that's how backlogs go though more noise that happens the more it raises through the top did you have a last question andrew um i asked one of my mates and i know i think it might be a little bit more integration hub than flow designer but um one of the big things that we've been thinking about is kind of inbound rest api stuff to call flows rather than building a scripted api with the flow is there some kind of feature to next week and we will talk about that next week i figured that might have been the case so next week is integration help week and we're going to pump that one to next week so that's an excellent question and we're going to talk about that one specifically andrew so uh now it's time to uh review our drinks uh chuck has gotten us through our tasks brian and jake have answered all of our questions there's been great chat and so now we've rate the beers uh brad how was your beer today sir all right so i was uh i was told that it is pronounced rocaphore i've been pronouncing it wrong for a while i saw that in the chat also thank you excellent beer and i'm gonna give it a four seven five because we achieved what a success is really good and the beer was great isn't that isn't there a roca for cheese too i think it's spelled differently though yeah okay i think it's pronounced different than cheese actually i think that's only four seven five i've ever heard you say brad it is evan [Laughter] that's the quarter point success factor that's really good brian how was your beverage today sir and this is on a five point scale with quarters so untapped scale if you use that i i had this uh steel beach my cast brewing and uh it's probably right around to four i don't know if i need to get into quarter increments four so four's good but you know four is better than three and better than two and better than one it's not bad you know all right jake how was your uh your empty beer stone delicious is empty and because i have a 16 gallon sitting in the just outside is uh i i would have to give it probably a four and a half it's it's nice beer nice chuck there's another drop in there the uh lining summer shandy it's summer it's about 114 here or about 40. c so this is going down really nice i give it a four and a half nice andrew what's your tasty beverage of this morning i finished my coffee well before this started i've been up since 5 30 with my kid so i had a coffee and it was five plus plus as much as you can for caffeine in the morning at 5 30. on saturday on saturday he likes to always mess with us international date lines and stuff i'm coming to you from the future yeah he's definitely in the future so my blake's hard cider uh was was actually quite excellent it's a 4-2-5 uh so that is a wrap on our flow designer week we'll have more stuff in the future about flow designer of course but our paris feature week for flow designer this is a nice bow on the top of it i really want to thank uh jake and brian for joining us and all of the folks out there in the community for asking questions uh and andrew dropping on your early morning saturday to come and join us thank you so much any last words from anyone before uh we say goodbye thank you thanks for having us yeah sweet um and uh so chuck tell us about your podcast real quick uh breakpoint podcast you can find it at bitly slash sn break dash point is where it goes and from there you can subscribe on apple podcast google play spotify all the popular podcast directories it is the servicenow developer podcast we've got one whole official episode out right now an interview with our own brad tilton about how to become or how to get started as a servicenow developer the next one as i hint to that earlier in the show is coming out on the 19th with a discussion about flow designer and integration hub with dave slusher whom you may recognize from this show not too long ago and i have a surprise episode dropping on the 26th it comes out every other wednesday which would make the next one september 2nd but i've got a special treat for you coming out on the 26th so subscribe to special treats uh we'll get to that looking forward to that there's a lot of great stuff in the pipeline a lot of good people to talk to very much like this open discussion uh and i'm going to sneak in some customers and maybe see if i can get some old-timers to tell you about the early days of servicenow i think that would be a fun discussion as well i think that'll be fun so thank you everybody have a great weekend and we'll see you next week

View original source

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