Close all related Case Tasks when the case is resolved

erajakumaran
Tera Contributor

Hi,

We have a requirement where all related case tasks(sn_customerservice_task) should be auto closed when its parent case(sn_customeservice_case) is resolved OR not letting the agents to resolve the case until all its related case tasks are closed. 

On the community site I found something similar for Incident and its related Incident tasks where they have achieved it with a BR, I have tried using the same BR logic and edited according to the case and case task table but it doesn't work.


Appreciate if you could provide some BR script which could work.

2 ACCEPTED SOLUTIONS

Gangadhar Ravi
Giga Sage
Giga Sage

Hi @erajakumaran 

 

You can add something like below 

 

// Business Rule Script

var caseTasks = new GlideRecord('sn_customerservice_task');
caseTasks.addQuery('parent', current.sys_id); 
caseTasks.addQuery('state', '!=', 'closed');  
caseTasks.query();

if (caseTasks.hasNext()) {
    gs.addErrorMessage('The case cannot be resolved until all related tasks are closed.');
    current.setAbortAction(true);  
}

 

Please mark my answer correct and helpful if this works for you.

View solution in original post

Hi @erajakumaran ,

I just small modified the script that was provided by @Gangadhar Ravi  as below:

(function executeRule(current, previous /*null when async*/) {

	// Add your code here
	// Business Rule Script

	var caseTasks = new GlideRecord('sn_customerservice_task');
	caseTasks.addQuery('parent_case', current.sys_id); 
	caseTasks.addQuery('state', '!=', 3);  
	caseTasks.query();

	if (caseTasks.hasNext()) {
		gs.addErrorMessage('The case cannot be resolved until all related tasks are closed.');
		current.setAbortAction(true);  
	}


})(current, previous);

Then, it seems running as below. the error message was shown as below:

aizawaken_0-1728650544924.png


But 1 thing I have to say to you, this works by checking the state is closed or not, instead of checking resolved. It is because I could not find the value of resolved...

Hope this would help you 🙂 

 

View solution in original post

11 REPLIES 11

Thank you both @aizawaken @Gangadhar Ravi 

@aizawaken that's fine, now I understand the logic better, thank you 🙂

erajakumaran_1-1728651419530.png

 

BR Script

(function executeRule(current, previous /*null when async*/) {

    var recObj = new GlideRecord('sn_customerservice_task');
    recObj.addQuery('parent_case', current.sys_id);
    recObj.addQuery('state', '!=', 'closed');
    recObj.query();
    if (recObj.hasNext()) {
    gs.addErrorMessage('The case cannot be resolved until all related tasks are closed.');
    current.setAbortAction(true);  
}

})(current, previous);