We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

check if all child are closed

Sharique Azim
Mega Sage

How to find     all   the task(sc_task) under ritm table whose state is say pending .I want this to be reflected in the parent(ritm )[the state of ritm also changes to pending] only if ALL are pending ,else ritm stays in the same state like previously it was.

piece of my code:

var tsk=new GlideRecord("sc_task");

tsk.addQuery('request_item',current.request_item);

tsk.query();

while(tsk.next()){
if(tsk.state=="6"){

var itm= new GlideRecord("sc_req_item");

itm.addQuery('sys_id',current.request_item);

itm.addQuery('active',true);

itm.query();

if(itm.next()){

itm.state= '6';//also has the same value to avoid confusion.

itm.update();

gs.addInfoMessage(itm.number+itm.state.getDisplayValue());

}
}

}

1 ACCEPTED SOLUTION

Abhinay Erra
Giga Sage

here you go. This should be an after business rule on sc_task table.





var tsk=new GlideRecord("sc_task");


tsk.addQuery('request_item',current.getValue('request_item'));


tsk.addQuery('state','IN','6');


tsk.query();


if(tsk.hasNext()){


var itm= new GlideRecord("sc_req_item");


itm.get(current.getValue('request_item'));


itm.state= '6';//also has the same value to avoid confusion.


itm.update();


gs.addInfoMessage(itm.number+itm.state.getDisplayValue());


}


View solution in original post

15 REPLIES 15

Im not closing the task but changing   states in parents