How to know if related list is not empty and automatically update the field on the parent form
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-09-2022 11:34 PM
Hi!
We have a requirement where we want to query the related list in Table_1 and if there' at least one record in Related_List_1, the Select Box field value will be changed in Table_1 form
Sample Details:
table_1 = is the current form
relate_list_1 = is the related list on the Table_1
Type = is the select box field (Choices: One , Two)
Scenario:
If the related_list_1 has at least 1 record in table_1 form, the Select box = 'One'
Thank you in Advance!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-09-2022 11:41 PM
Hi @ss123
You can take the reference of below code:- In that code I'm checking if incident has any incident task associated with it or not from related list. incident task is related list.
Business Rule : Before Update
Condition as per your conditions
(function executeRule(current, previous /*null when async*/) {
// Add your code here
var incTask = new GlideRecord('incident_task');
incTask.addQuery('parent', current.sys_id);
incTask.query();
if(incTask.next()){
current.select_box_name='One'; //Change field backend name and value
//gs.addErrorMessage('Not allowed');
//current.setAbortAction(true);
}
})(current, previous);
Please Mark My Response as Correct/Helpful based on Impact
Regards,
Gunjan Kiratkar
2X ServiceNow MVP
Community Rising Star 2022
Youtube : ServiceNow Guy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-10-2022 05:26 PM
Hi @Gunjan Kiratkar thanks. I modified the BR Script but it seems the if statement is not working?
(function executeRule(current, previous /*null when async*/ ) {
var vtbcard = new GlideRecord('vtb_card');
vtbcard.addQuery('parent', current.sys_id);
vtbcard.query();
if (vtbcard.next()) {
var servtask = current.u_choice_2;
servtask = 'no';
} else
{
servtask = 'yes'
}
//current.setAbortAction(true);
//Change field backend name and value
//gs.addErrorMessage('Not allowed');
//current.setAbortAction(true);
})(current, previous);
The reason behind this is we want to update the Select box field (u_choice_2)
If vtb_card related list has any record, the (u_choice_2) = No
else if vtb_card related list has NO record, the (u_choice_2) = Yes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-10-2022 08:39 PM
Hi @ss123 ,
You are not setting the values to u_choice_2 in your code.
Try below code:- Before Update BR
(function executeRule(current, previous /*null when async*/ ) {
var vtbcard = new GlideRecord('vtb_card');
vtbcard.addQuery('parent', current.sys_id);
vtbcard.query();
if (vtbcard.next()) {
current.setValue('u_choice_2','no');
} else
{
current.setValue('u_choice_2','yes');
}
})(current, previous);
Please Mark My Response as Correct/Helpful based on Impact
Regards,
Gunjan Kiratkar
2X ServiceNow MVP
Community Rising Star 2022
Youtube : ServiceNow Guy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-15-2022 07:40 PM - edited 11-15-2022 07:54 PM
Further details is that the related list has a field called "Task" and that field references the current form number. How do we update the BR Script ?
I modified the script you provided and it only changes to "Yes"
(function executeRule(current, previous /*null when async*/ ) {
var vtbcard = new GlideRecord('vtb_card');
vtbcard.addQuery('task', current.sys_id);
vtbcard.query();
if (vtbcard.next()) {
current.setValue('u_choice_2', 'no');
} else {
current.setValue('u_choice_2', 'yes');
}
})(current, previous);
Thanks.