logo

NJP

ServiceNow GRC/IRM: Full Flow (Part 2: Indicators)

Import · Oct 01, 2020 · video

and we're live good evening welcome to phil goes deep this is part two of grc full flow so following on from yesterday's stream we're going to continue converting the grc applications in service now over to flow designer yesterday we were able to start with indicators and i managed to convert the ui action execute per indicator and also the scheduled job execute all indicators i did come across a small hiccup with the update next date time method and i'll i would like to close that one out but i'm not sure that that's something for today what i want to do is start working through all of the tables in the context of indicators and start looking at business rules that might be able to be converted my early expectations were that before business rules won't really be able to be converted to flow designer so far that seems to be the case so i'm parking those ones and really right now i'm just going to get into it so let me switch over to my oh i've got another let me do my i've got another little transition there so let's see how that goes oh here he is okay so uh let's switch over make sure my stream is healthy audio's working audio levels are good hopefully the lighting's a bit better now um okay this is my update set uh focusing on the grc profiles application yesterday we we touched some script actions uh ui actions and built some new flows and some new actions okay so update next date time doesn't really belong as an action um i've got an idea for that but let's see whether that's really something we've got time for tonight this is my uh diagram zoom out a little bit here so in terms of the let's just put this in here this is grc profile so grc profiles application has the scope name namespace sn underscore grc okay so within profiles we've got indicators which we're focusing on and issues entities and there's a few other things in there so i'm starting with indicators and we've got some tables okay yesterday i converted the scheduled job to run all indicators the ui action to execute run indicator the run all indicators if you've got certain levels of indicators will actually batch them up and trigger a script action okay so this has been converted the script action is now calling my flow however this hasn't been tested so i'm keeping that as amber for now now the next things we're looking at are the tables so indicator tasks it's got two business rules on there and they're not able to be converted now they're before business rules okay so i'm highlighting them red indicator results where we're going to start seeing a bit more activity i believe and then there's also some things around indicator templates we'll look at the table structure and we'll look at the business rules on there so indicator results is where i want to start if we go to sngrc indicate our result dot config oh i've got some some pop-ups firefox is doing its job excellent okay so look at these business rules close or update issue when result passes create issue when result fails update control to compliance update indicator count for control update last result passed okay now some of these these two okay are in the policy and compliance scope so i'm not going to focus on those and actually starting with indicators once we're done here will lead us nicely over into issues so we'll do issues next it is a very broad uh broad piece of the application lots going on with issues but that should lead us nicely into some of the areas of policy and compliance and risk management so let's get started on our business rules let's just take a look at them close our update issue create issue and update the last result passed so last result passed is on indicators itself so my gut feeling is that's the the first one to do and maybe we should just put here the let's put this the scope my approach is to review apis yeah get the public methods so we're going to review the apis identify public methods can create actions yeah that's one one set of activity we need to do and then we need to identify api calls and create flows and subflows and then replace calls yeah so these are the two kind of uh approaches so far we can refine this over time right now just want to get into it and i think we've done this already on on these but what we might find is we'll identify the api calls and then that will take us up here okay so this is really our typical starting point okay update last result pass also need to have flow designer up and running update last result passed this this is a an after business rule so i'm pretty comfortable that we can create a flow from this but what happens equals so i think we need to move this code so indicator result equals current.past we get the indicator oh look wrapping the get good stuff so how will we convert this to an action first things first create a new action and this is called update last result passed grc profiles and our category is full flow as i mentioned on the previous stream and i've also anyone watching the channel i've set up a playlist for grc full flow not sure when i'm going to be doing all of these sessions in in the back of my mind i'm like can we convert grc to flow designer in 24 hours so i'm wondering whether i need 24 individual one-hour streams and try and break it down like that so i'll set up a playlist i'll try and shed you ahead of time but i did it yesterday for a test run felt really good i think it's a pretty solid idea and still just feel a little bit excited about it so i'm doing another one tonight we've got flow designer update last result passed so we have the indicator result is our input here we call this indicator this is a reference to indicator result can't do anything without that that becomes our current okay when we look at that business rule that's the current record output did we really return we don't return the update i feel like we should probably return success or not we're not doing it so if we convert we try and stick to a basis of like for like because if i start improving things or okay i might think it's an improvement if i start changing things that's going to complicate stuff so let's keep it there is no return so therefore there's no output so first thing here is a script step and this is going to be update last result past variable is going to be indicator record and this is going to map to my input my code it's already available so indicator result equals so let's put in here i don't want to pollute the namespace by calling things current so i'm going to say what indicator result is i'll call it gr indicator result equals inputs dot indicator it's not an indicator record that's known as indicator result the problem is you've got a field on indicator result called past so this should actually be called that's a string of past and that is gr indicator result dot i prefer to use get value i know there is a lovely article on code creative.io about stringing um how to string variables in servicenow and i don't want to credit the wrong person let me check code creative king of string yeah travis wrote this one yeah travis tolson last march 2019 so you know if you want to explore i'll just stick this in the chat for anyone if you want to explore when to use get value whether to use string in etc plus quote quote i think sometimes it's just flavor but you do need to know how it responds and how it handles things like null values okay i feel like i want a string of the past ah but you see down here is testing it for true so that's probably why so again let's not change things i'll try and stick to that mantra indicate a result i'll change my variable name indicate a result so that's a glide record coming in i've indicated result table my string of past is coming from the past field on the indicator result then i'm going to look up the indicator and i'm going to change any reference to current here if we don't have any then return indicator see again i i love to use set value i don't like this dot walking i feel like it's unpredictable sometimes you're dealing with glide elements um it's not for me it's not ideal so indicator dot last result passed equals string past equals true if it's not equal to true then that's going to be set to false and it updates the indicator so i feel like that is all we need from an action we need an indicator results to go and just test this against indicators in fact if i go to my recent history i love using this clock that's what it's there for your history if you were there recently use the clock here's my indicator manual test now you can see here last result passed so what i actually need to do is on this one and i need to be in the app i believe in the right scope if i look here last result passed if i set this to false okay okay that's false now this indicator result pass true so if i test this flow designer how can i get the display name of this result generated from fill entity doesn't really matter which one of these it is if i get this in here either one of these run tests it was completed and we've got a green let's go back that result past okay so my actions working i'm happy that my action is working update last result passed that name is a little bit too generic now for an action here say update indicator last result passed save that publish the action okay now i'm going to create the flow that matches my business rule let's close explore and go to this one this business rule when to run if i look at my diagram let's just test this so i've identified an api call i've found a business rule i've looked at the api which is okay it's not actually a script include here it's embedded script within the business rule and i've created the action so really we're actually coming in this way if it's i'm going to call it embedded code embedded code and then i've got my i've got to create the action and call this over here create flows and then replace the call so update last result passed after insert update past changes i don't see how that runs on update to be quite honest with you because an indicator result can't be updated so really it's on insert so i'm going to create a new flow because i need a trigger and i'm going to say indicator result set last result passed run as user who initiates the session i think that's accurate that's what a business rule would do and my trigger is going to be i'm going to do created or updated just to match but i don't think there would ever be an update and my filter is past changes okay so if my past field changes this stuff down here run trigger once that should be fine because like i say indicator result should never be updated so it shouldn't ever get there i don't know if there's any performance um implications here of saying um only if not currently running or for each unique change i'm just going to leave it at once in terms of advance when to run the flow for both interactive and non-interactive sessions for any user and where to run in the background i feel like that's sufficient although it's an after not an async that should be that should be fine then my action is going to be under profiles update indicator result lastpassed my indicator is going to be this record save this just test it run the test excellent that worked now i'm going to activate that and i'm going to deactivate my business rule and under here indicate a result business rule i'm going to set this one to green okay so that's done um what i need to do i shouldn't have closed the explore if i do the same thing again quickly in here profiles i'm going to say gr dot set when i run this that's no longer last result passed and let's see how much of this is running on flow designer now if i click execute my ui action is used for handling the ui messages okay but it's going to go and create me an indicator task i've already got two open now i've got a third one so i'm going to focus on that third one if i close this closed i have to pass the result it's going to be passed when i update that it's going to take me back to the indicator that should trigger that should trigger the flow designer excellent we can see that just gone last result passed how did it do it my business rules inactive look in my flow designer my flow executions has just run here yeah just now this one was my test two minutes ago here's my successful and which one was it for indicator result which just came in from indicator task 2007 perfect i need to get some sound effects on here for for my uh sound sound i need a sound board i need to speak to ben ben forrest where are you okay excellent so that is of the business rules update last result passed these sorry these two create issue when result fails we're going to start going over into issues then if we start doing this so let's hold fire there um take a quick look at them they are after that's after this one's before create issue when result fails before or pass is false changes to past is false those conditions don't seem that different to me i think that would still this one here would trigger that one don't think we need to there update or create indicator issue i think we might start going into issue utils next we need to do that to be able to set up our business rules so there is dependency here we can't can't go as clean as that um however what we have got let's let's just name these two business rules so we don't lose track sorry scroll and roll um close or update issue when result passes and that's going to be dependent on the property fairly confident there this one and we're going to mark this blue because we haven't done it yet close or update create issue and result fails okay so if anyone's kind of thinking about how does how does a control or a risk get impacted where does it where's the logic okay in indicators the logic is always from the indicator result uh the indicator result is either going to have it's got a boolean flag on there a binary status past is the field it's either true or it's false it can't be anywhere in between the indicator is either going to pass or it's going to fail so when the indicator result gets generated the indicator result record and the whole table is actually locked down so you can't change it therefore when an indicator result gets created that informs the the logic so if the result passes it's going to check have i got any open issues related to indicators then it's going to handle the closure of the indicators that were generated by by issues if it fails it's going to create the issue so or create or update okay so we're going to move into the issues api next i think i'm going to just mark that one red because then it shows we kind of we've moved on indicate result we're going to do indicated template right template i did call that templates every table in the system should be in the singular that's data modeling 101 indicated template has got some logic on there so when a new indicator template is created it will generate indicators for each of the controls so you can see here auto create indicator when content associated deactivate delete template enforce unique pa indicator okay that's interesting prevent creation for non-leaf risk statements uh interesting that that's in profiles i would have expected that to be and i'm if i look at this one i assume there's a check on the plugin for advanced risk when to run actions ah appeared up current content nil current class name and [Music] current leaf nil and it's not current.content.leaf i thought the leaf field was a scoped field from advanced risk maybe it came from profiles okay set schedule field to default if errors update category based on content changes update indicators created from template so really this this is the one i was focusing on however we're going full flow here so we're going to create or attempt to create everything let's put a field on here when because i want to know from the list view after you see these ones before before before i'm not even going to attempt to convert the befores because i don't really know how to do that i don't think it's possible i really want someone to tell me that i'm wrong okay so we're going to focus on afters so auto create indicator when content associated let's tidy these tabs up i know you can't see just close flow designer undo close tab yeah you can't see the the top of my browser so it might look a little bit weird on the stream um auto create indicator when content associated delete deactivate delete template and update indicators created from template hmm i'm just messing around with the stream a second i don't think i want to do that stream marker added okay right so i need to i've got the stream open in the other window and what i want to do is try and convert these into clips as well if there's something meaningful in here so i will try and remember to do that but i don't want to get too distracted uh let's see whether i can multitask so i've got auto create indicator when content associated when to run after insert update and then we've got additional conditions up here where the current contents active the current templates active and it wasn't previously active or the content changes not sure that condition needed to be scripted in here okay but that's the flow what we want is the action right now previous content so let's go into flow designer and create a new action and this is auto create indicator when content associated is in dlc profiles category description on here okay inputs it's going to be current right so it's indicated template i think from a business rule standard is i don't want to call it i don't want to call it current i call it indicator template and be specific it's going to be a reference reference to indicator template that's mandatory is there any output in here is an event hmm we're doing two get properties here get property we can optimize a little bit of that so i'm going to go create a script action auto create my variable is going to be indicator template my value is my indicator template var gr indicator template equals input stop indicator template okay so now i've got access to that variable locally copy the code from here so you've got previous does flow designer have access to previous that's um that's not something i'm clear on um access to previous what we use in previous for that's passed in for event cue create bulk indicators hmm service now i can't type servicenow flow designer access to previous current object there we go cam flow designer cam fly designer determine the previous and current unfortunately not yes it could be asynchronous that's you know things have moved on since a year ago but um what do we need if i forgot oh i was not copying let's copy this code okay so previous content it's literally only used for passing in our event queue that's for content changes hmm so we can't access previous content which means we can't actually pass in but we okay so this property is being called twice which is not necessary what we would say is var so it's bootium boolean create autocreate okay then you can pass that in here and here you don't need to call gs get property twice item guide you'll get current.content so when we looked at my updated code here let's build it in let's build it we're not going to have this part of the script gr template is going to replace current okay so anywhere we see current yeah there that's going to get replaced previous content we can't call so i'm going to comment this out and i'm going to have to not cue bulk changes because i can't access previous whatever the previous content was i need to go and look at that event it's not the script action okay because the script action yeah from what i create here br to script action previous yeah because of previous i can't convert that bit from what i can see right now so get rid of previous can we do the rest of it if our property sets it true we go and get an aggregate on the item add a query on the content if it has next if the table's risk definition add info message else yeah so it's going to give us the info message but the event queue is going to be a problem because we haven't got access to previous has that changed let's find out look at the docks quickly see inputs current equals current you know that's when it's being triggered from your action that's code snippets access to previous it feels like it's two things now so we've got before business rules and we've got access to previous two things that flow designer can't do unless i'm wrong when it comes in we've got current let's look at flow quickly we go to flow actually i've got a demo one i set up just for playing around so if this was updated okay let's indicate a template the one we're looking at right now mind the wrong skype no there we go indicator template if i said the content changes ah it's not called content it's called the label changes so if it changes and it knows it's changed it must have access to previous so if i say action let's look at our trigger record now run start time so we've got our trigger record updated if we only got access to our new value we don't have access to the old values does it matter if i run it in the foreground nothing in here from previous nope servicenow core i mean you could look up the record but this is an after business rule so it's already been changed that wouldn't work hmm i think we can't move that one over leave this page for now auto create indicator when content associated i'm going to park that one as well let's say we can't move this one over um access to previous auto create yeah so we've got a new failure here let's fly designer gone did i close flow designer undo close yeah get rid of demo 46 minutes into this session and we have managed to move one business rule over and find out the other one can't be moved uh it's not as good progress as i hoped for i don't know if we're going to convert the entire application suite in 24 hours let me know what you think post in the comments don't forget on the channel if you wish to subscribe like thanks to everyone that liked and i've got two new subscribers yesterday so i guess this topic is of interest um share it post on this service now community as well let us know what you think on there so my action auto create i'm going to leave that in draft for now next up auto create indicator that can go deactivate template that we've got previous active i think we can deal with that as conditions is there anything in here excuse me sorry luckily i've got on mute there um is there anything in here about previous no you can see there's gray not been called so this one should work deactivate delete template okay so actions new action and this is going to be in profiles category full flow go input will be always indicator template be a reference to indicator template mandatory then we do a code step sorry script step deactivate let's call this indicator template uh variable indicator template is my indicator template so here is going to be rgr i can copy this from this one yeah there and then copy the code in we're firing a another bulk indicator event queue in fact let's move this code into here so any mention of current i don't know if we've got operation equals delete that's uh that's an interesting one i don't know that there's going to be an operation available on there let's test it let's find out i'm hoping to break a couple of things here so we've got a content id we've got an indicator template we've got a content id we've got a table which is the cis class name item and if we've got items add info message indicator i don't know that we can even add info messages i have to run in the foreground okay should write don't know whether flow designer can deal with that let's make sure we run it in the foreground and see i'm not sure that this is going to work can we get operation on the record be interesting if we can we're going to event queue there so i think that's pretty good for an action i haven't tested the action but i'm going to publish it because i'm going to go straight in and create a flow for the sake of brevity because i want to get make sure this condition works this is going to be create delete indicator template and you know i think there's some stuff that doesn't necessarily belong into a flow designer the more kind of going through here i think there's definitely a question mark of people have asked and the reason i'm kind of doing this is we've had lots of questions um you know amongst the team of should we be replacing things in flow designer should we be building everything in flow designer and i don't think it's possible to answer that question without really trying to do it and then realizing what hurdles we come up against there's certain behavior that i think will always belong in a business rule because that level of complexity or kind of system functionality you don't really want anyone messing around with it's not really a flow that someone should be tweaking i don't think it should i think this gets a bit dangerous but then the benefit of flow designer with your executions and you can go in and debug and see what's happening and understand the system better maybe it is good to expose it so i'm at a bit of a conundrum now i think this is uh create when to run update no wrong when to run update or delete okay so doesn't deal with delete we found another gap am i missing something updated so that operation is going to fail in our action right when we go into to hear that if operation equals delete i don't think the flow will trigger does it count it as an update let's find out indicator indicator template okay indicated template and our filters are we're looking at this okay where can i paste this in i didn't like that yeah okay so if the current operation equals update and it's not active so i would say here that active changes to false yeah because if it's not active and it previously was active so if it changes to false or if the current operation equals delete i don't think we can get to operation so that's why it's scripted so if you deleted the indicator template delete the indicator template it deactivates in bulk the indicators i don't think we'll get to here hold on so that is own so if it's a delete it's only just look at it in code there's no brackets around here so the temporary id is our indicator template sys id if we're deleting then we blank out the temp our template id and template id thinking it's temporary temp is short for temp don't use ambiguous abbreviations template id we blank it out if we're deleting it we blank it out so when it cues the event okay so i don't think it's going to handle deletion personally i think we have a bit of a gap here so i am going to publish the action just with that slight change to the code of the variable name honestly people who work with me will tell you that i do get caught up on things like variable names but they are so important just avoids confusion reduces ambiguity right so deactivate and our indicator is going to be my trigger record where active changes to false let's save that just activate it ah i didn't run it in the foreground uh when to run advanced options run it in the foreground because we've got some messages in there so i want to check that we get messages out okay we can't get them if they're in the background pretty sure about that and deactivate this business rule so let's just take a note of the business rule we're looking at at the moment in our diagram so we can't have previous we can't have delete we can't have before so that's inactive let's go and get my indicator template so this indicator doesn't have an indicated template not a problem let's create an indicator template does my control or risk have a control objective control doesn't have a control objective okay so let's create a new indicator template uh full flow demo one and this is going to be a manual whoops so am i done was collecting supporting data i save this i'm going to create a new control objective demo one full flow demo one active submit okay so my control here i'm to attach it to my new why is this non-compliant oh from earlier fine okay so i've got a control objective i think this same action is going to need to be called when new controls are inserted so i think we're going to keep coming up against that one um what is uh we don't have our indicator showing up here yes there we go is that our existing indicator control indicators no we're gonna have now two one to the template one not to the template which is fine my flow is going to run with active changes to false my indicator changes to fall my indicator template changes to false do i get a message yes i've got a message indicators are being deactivated i should have thrown an event which is going to be picked up right now by a script action yeah that's gonna act active false so the next thing on that uh flow here it's going to call a script action which is called bulk deactivate bulk indicators script action deactivate bulk indicators okay so that needs to be done so that's not running on flow yet let's uh see does it come back on uh deactivate update so when you activate the indicator template does it bring it back by default that has changed got the same message refresh this list yeah that's gone back to active where's that come from then where's that come from how are we doing right we've gone over we've gone to an hour i feel like i'm making slow progress now because i think i'm getting right into the the detail so my indicator template changed to active update indicators created from template when to run after let's take a look at this indicator generator engine um so that's indicator generator engine or indicator engine um and we're going to look at the base generate update indicators it's called update indicators update indicators so any changes to the template where it hasn't been overridden and set indicator fields i'm just looking in here so indicator fields active is not set in there uh how did it get set back to active well i'm is it before business rule and that's why i'm not looking at it uh is this one business rules huh i'm confused now yeah like if current content current and it wasn't previously active so this one is running after auto create indicator and we've got this other event queue here so that's create bulk indicators the one we said we can't convert yet it's got a different script activated here so is it that script action that's taking care of that for us script actions oops bulk indicators if this is setting things to active no if content change indie temp info decode deactivate indicators generate bulk indicators from template so in this one generate bulk indicators it's called create indicators create indicator or single down here if it's not active set it to active okay so even the generation and the handling of a template to its children is absolutely huge it's just there's no let up grc is just constantly keeping me on my toes update indicators created from template i mean this can this can go right this can go into the flow but the other ones the other ones are going to be troublesome it's going to close down some of these records deactivate delete template yeah we can't really do that because we can't do delete on here um let's put some comments because i know what happened we'll come back to this and say what can i handle delete operation cannot handle previous objects yeah cannot handle before um i don't know what to call that ordering or before order execution yeah so we can't do befores we can't do previous we can't do delete if we can do afters after updates after inserts we can do afters definitely we could do asynchronous definitely deactivate delete item is okay i've copied the name this is going to be called deactivate delete nope update indicators created from template yes this is going to go fairly confident looking at this one we can do this without any pain update indicators created from template why don't you stay default to my scope submit this it's an action so we need an input um let's just flag a stream marker here okay it's an action let's start again let's go so we've got a business rule update indicators created from template update indicators created from template an extra e on the end update indicators created from template it's a business rule it's an update after no conditions advanced no conditions and all we're doing is firing the indicator generator engine api so our action input update indicator is created from template because it's coming from a business rule we need our what would normally be our current it's going to be our indicator template this is going to be a reference to the indicator template table and that's mandatory check no returns in here very unusual to see a return from a business rule anyway so the first thing is to put a script in and i'm going to call this update indicators here update indicators and current is going to become our variable indicator template our value is our indicator template and in here is input dot indicator template new indicator generator engine okay we're in the right application scope update indicators we've got an action based on an indicator save this publish this and now we can replace the flow replace the business rule with the flow update indicators created from template we're in the right application scope run as the user who initiates the session yes trigger is updated yeah when to run after update no messages in the business rule indicator template yep trigger once no if not currently running run it in the background should be fine so that's done on my trigger my action profiles update indicators created from template and guess what my indicator template record is my inputs done on there save that activate it obviously we can test it first but this one looks simple and then deactivate the business rule and i'm going to test it this way i'm going to go into my indicator template which i had which i did have open where's my indicator template gone before i just refresh the whole thing the indicator templates um i'm going to say in here updated today yep so i've got an indicator template there's got got an indicator against it i'm going to say test flow now what i should be able to do is look at this from the executions that's queued just now does this update in real time or do i need to refresh the list refresh the list it's complete so it looks good we can look at our action reference steps drilling all looks positive can't see any reds if i look in here i change the name to test flow refresh it's gone to test flow okay so very successful update indicators from template so that's updating them but what we don't have if we go back to smgrc indicator template.config and look at the business rules we've managed to deactivate two of them update indicators created from template and deactivate delete template however that's still amber this one's green this one's red yeah which is create indicator when content changes because we're gonna have access to previous after after after and i can't do those four because they're in there before business rule uh so i haven't documented that fact and we've got ordering as well which is another complicating factor i didn't actually look at this before i did these afters right so if i wanted this to run then this to run then this to run um i mean you could build it into a single flow to make sure that the actions are running dependent of each other and break out the conditions maybe that's the solution i'm not sure um and look here i've got my flows so that's looking nice so you can see from the business rule deactivate delete indicator template deactivate delete i've called it indicator template because from flow designing you don't know it's about indicators update indicators created from template update indicators created from template so i've moved the ones that are now inactive over to this tab so that's looking pretty good [Music] what's next indicated templates these ones were dependent on issues else have we got is there any quick wins i can do in 10 minutes because we've got an hour and 20 on the clock let's look at tables cis db object list anything that's beginning with sngrc indicator indicator batch indicator result indicator supporting data indicator task did we look at that on here i thought we did yeah indicator task indicator template so we've done the indicator template indicator task and indicate a result we haven't looked at supporting data i'd be surprised if there's any business rules on here uh the table name is not valid did i put a comma ah i had spaces yeah let no business rules there's no logic on this table that's great um indicator i haven't looked at that for why why prefix dot config business rules okay but they are a display pretty sure you can't do a display business rule um update risk indicator failure factor pick prevent pick and item yeah these are before ones i don't think we can do much with befores so after a bit that's under risk management so the same way i'm going to flag this so we get it on our on a backlog let's call that indicator let's get this business show where's the line come from i don't want to include the link in there so put that in update risk indicator failure factor that's going to be in the risk scope so i don't really want to touch that yet and the same way that these are although they're in the profile scope they're going over into the issues api and trust me when i say that's going to be a very interesting set of logic that we need to deal with but this won't be good update risk indicator failure factor it's in risk management application so i'll need a different update set but basically it's dealing with operations delete as well if it's class name is risk if the last result changes or you delete the indicator risk equals risk if get they've wrapped it love to see it then we just trigger update indicator failure factor for the risk interesting so if you delete an indicator obviously the number of indicators is is affecting the indicator failure factor so just removing the indicator regardless of whether it passes or fails will affect the average but we just run the indicator failure factor against the risk glide record so that must then come back and check for all indicators and whether they've passed or failed so this is just the trigger point seems perfect but we've got an operation delete in there which is going to going to trip us up when we get there looking at the table logic we've done indicator we haven't done anything on indicator batch this is a new table um that i am aware of but yeah i have not explored in any detail there's a business rule notify for indicator tasks runs after notify for indicator task what's it going to do when to run after delete i don't think we can replace that one either batch count query new if indicator task succeeded we know that defaults on the property to a thousand so if you've got more than a thousand open indicator tasks you can change that property it's going to notify i don't understand the logic why this runs on delete so you delete the indicator back so it's been cleared out so it's been processed however it's only running on delete so we won't be able to touch that one either okay so you can't handle a delete operation um same for indicator batches i feel like we should document the fact that we've talked about it just because at the end of this you say what did you do loads of stuff but didn't write it down i mean writing stuff down as you go along is recommended i'll recommend it i don't know who else recommends it if you're working on debugging an issue um and you're you're stuck and then you think i need to speak to someone about this and you talk to one of your colleagues or your mates or you go to the community or you raise it with the support desk and you need to hand it over to someone you need to tell them what you've done so far what you've tried what worked what didn't so write it down as you go along keep track it will help your own investigations because you'll be able to come back and go okay i've started here i've done that and you will avoid repeating yourself and you can be a lot more logical okay one of my old team leaders when i was an apprentice i'm going to shout out brian russell because he was a legend i'm not sure how he's getting on so uh just shout to brian russell but he told me in my debugging you need to be more logical less intuitive right so i used to jump to conclusions i'm not sure what percentage i was right i might have been on the right lines but getting there it's the same as in maths you have to show you're working out write things down as you go along okay and then you can it takes a little bit longer but it will save you time in the long run there's no logic on this table in the indicator batches if i just want to get the text i sometimes paste it into actually i want this name paste it up here and then i can copy it just strips out the html that table is not no logic but it's a delete operation so what tables have we looked at let's zoom out in here indicator task indicator result indicator template indicator indicator support and data indicator batch one two three four five six look at our tables one two three four five six okay so we've explored all the logic on the tables the business rules this one is an amber i don't know we haven't started on that yet um sorry that's because it's risk management this one's an amber because it cannot handle the delete operation this one's green this one's red i haven't highlighted all of the afters all of the before business rules because they're not going to change i can just blanket that now and say anything on before we're not attempting i've done every table name that starts with sngrc indicator if we just look at what else is ahead and group by application everything that starts with sngrc we've got advanced dashboards performance analytics premium what's going on with these m2ms okay i mean there's a lot of logic in m2m tables actually that's something i haven't haven't looked at i don't think indicators has got any m2m relationship so that should be fine but when we start going down the road of content so policy statement uh control objectives risk statements citations we start looking at documents like policy authority documents risk frameworks these sorts of mappings is where there is a lot of logic on the m2m tables i really hope they're going to be after business rules i can't think i can't think of the top of my head um grc audience i hope this is the same audience that's used for policy acknowledgement and that's centralized that would be nice we've got 63 tables in here assessment grouping document exceptions okay exceptions here is to do with licensing rather than policy exceptions but we have done six out of 63 so that's 10 percent if we look at it very very crudely anything else to say on here it's been an hour and a half let's do a lovely transition and just say thanks to everyone for tuning in this is part two looking at indicators and we have managed to understand how much of our indicators we can start to shift over to flow designer so i think in the next session we'll start to look at issues okay issues is going to be very detailed so we might need more than two parts and then we can start to look back at the stuff from indicators that touches issues i start to join things together but going from indicators into issues is for me the next logical step so if an indicator fails the issue is going to get handled if an indicator passes the issue needs to get handled once we get into issues then we start to look along things like um updating the control status in policy and compliance we've seen one already when the um indicator changes then it's going to update the risk factor okay so we that's why i went with uh profiles to start with it's central we start to see where it connects into the different applications we've also got entity types and all of those mapping so i'm loving there's a lot of asynchronous business rules in grc i'm really hoping that flow designer can can help us with some of that because i've certainly been able to identify quite a lot of gaps so far in summary before um in mostly around business rules anything that's running before anything that's handling a delete operation and anything that's dealing with a previous rather than the current object for me seems to be a bit of a gap in flow designer right now however this is a learning curve i don't know if flow design is actually intended to solve these problems um if it's not then so be it but i'm looking forward to the next part i will update the schedule uh don't forget to um subscribe or is it over here yeah somewhere subscribe in the channel like the video if you like it add comments i'll link to the community post um yeah grc rm full flow project part two um see you for part three thank you you

View original source

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