Skip to main content

Difference b/w After & Async Business Rule in ServiceNow

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

Popular posts from this blog

How to use getreference() with callback function in client Script | #ServiceNow

What is the use of getReference() ? getReference() gets the record used in another reference field. For example you have the requested_for (reference to the sys_user table) and with getReference, you will retrieve the User record and save this as a gliderecord into a variable. Why we use callback function with getReference?  callback function allow you to use asynchronous processing with your getReference call. Example: FetchCompany&phoneNo function onChange(control, oldValue, newValue, isLoading) {    if (isLoading || newValue == '') {       return;    }  var requester_user = g_form.getReference('requested_for', callback); function callback(requester_user) { g_form.setValue('email_id',requester_user.email); g_form.setValue('manager', requester_user.manager); } }

ServiceNow Interview Questions - real time

Let's see some ServiceNow Scenario based Interview Questions & Answers here, 1.> How to fetch latest 10 incident records ? var grIncident = new GlideRecord('incident');  gr.orderByDesc('sys_created_on');  gr.setLimit(10);  gr.query();  while (gr.next()) {  gs.print('check the :'+ grIncident.number);   } 2.>How can you populate caller_id in short Description on Problem form? Write Onchange client script on Problem table on change of caller Id field  var caller =g_form.getValue(‘caller_id’);  g_form.setValue(‘short_description’, caller); 3.>How to send notification to the user who is member of assigned group? You can write the below code in Advanced condition of Notification gs.getUser().isMemberOf(current.assignment_group); 4.> How can you populate the only users whose department is “Finance” in caller field on Incident form. Use Simple Reference Qualifier & select “department is “Finance”. You can write the code ...