Let's try to understand difference b/w After & Async Business Rule & some examples on Real time scenario of After Business Rule & Async Business Rule :
1.> After BR executes synchronously (It will wait for a result, once result is ready & get displayed then user will get control to do anything, user has to wait) but Async BR executes asynchronously (user will get control immediately, it will not halt the user and result will get displayed when its ready or get response from system, it will be executing in the background as per system scheduler).
2.>After BR is used to update information on related objects that need to be displayed immediately such as GlideRecord queries etc. whereas Async BR is used to update the information on related objects that do not need to be displayed immediately such as calculating metrics & SLA etc.
3.>We can use current & previous objects but We can’t use previous object in Async rule & current object can’t be referenced on delete. We don’t have access to Previous version of a record. changes (), changesTo (), changesFrom () can’t be used in async.
4.> System can wait & process the request & generate result right away. User should able to see the data right away, action must be performed immediate whereas Async creates a schedule & run the job in background, action must not be performed immediate or right away.
5.>After BR Ex- updating the assignment group or short description Whenever we need to update related records & Async BR Ex- create event & send notification 1.User changes some field, basis on that event must be created & send notification to user 2. rest API call to other application when we create/update the incident in other system 3. calculating the SLAs.
Real time Examples of After Business Rule: - Create Incident task once we create an incident(After incident creation, incident task should get created & added in related record in incident task)
After Business Rule(Name - Create an Incident task) - on Insert
Script:
(function executeRule(current, previous /*null when async*/) {
var gr =new GlideRecord('incident_task');
gr.initialize();
gr.priority = current.priority;
gr.state=current.state;
gr.assignment_group= current.assignment_group.sys_id;
gr.assigned_to=current.assigned_to;
gr.short_description=current.short_description;
gr.incident=current.sys_id;
gr.insert();
})(current, previous);
Real time example of Async Business Rule:- To add users into selected groups from Catalog Item (Add Users to Group)
Aysnc Business Rule (Add users into group) - on Insert
when to run- you can select the catalog item name ("item is Add Users to Group") - optional
(function executeRule(current, previous /*null when async*/) {
var userGrp = new GlideRecord('sys_user_grmember');
userGrp.initialize();
userGrp.user=current.variables.user.sys_id; //backend variable name of User field from an Item
userGrp.group=current.variables.assignment_group_name.sys_id; // backend value of group field from an Item
userGrp.insert();
})(current, previous);
Watch video on YouTube Channel "ServiceNow Adda" where you can find the proper demonstration of real time examples & differences b/w Async & After Business Rule:
Async & After Business Rule YouTube Video Link
Comments
Post a Comment