- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2019 05:36 AM
Hi All,
I am trying to "Calculate records from a related List to add to field on the incident table".
I imagine it would be a client script as i would need for it to update onLoad and onChange.
Im not too sure how i would write the script but think I should use the GlideAggregate function.
Your help/guidance is much appreciated
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-11-2019 04:51 AM
Hi,
So u_related_incident field stores the incident details.
Is it a string field or reference field ?
1) if it is string field then use this query along with other
gr.addQuery('u_related_incident',current.number);
2) if it is reference field then use this query along with other
gr.addQuery('u_related_incident',current.sys_id);
then it would give the count of new call records for this current incident and store that count in the count field
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2019 05:42 AM
Hi,
use display business rule to query related list table with the current incident record; get the row count
store in g_scratchpad variable
in onload client script set that scratchpad variable value into that field
sample script here; I have queried the task_sla table as an example here
var gr = new GlideRecord('task_sla');
gr.addQuery('task', current.sys_id);
gr.query();
var rowCount = gr.getRowCount();
g_scratchpad.rowCount = rowCount;
function onLoad(){
g_form.setValue('field', g_scratchpad.rowCount);
}
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2019 06:12 AM
Hi Ankur,
Thanks for the code but it did not seem to work. I tried to also add an encoded query but also got the same results. I think the business rule is causing the issue because i am getting undefined in the field. please see the changes i made below
Business rule
(function executeRule(current, previous /*null when async*/) {
var gr = new GlideRecord('new_call');
gr.addEncodedQuery('call_type=incident^u_related_incident!=NULL');
gr.query();
var rowCount = gr.getRowCount();
g_scratchpad.rowCount = rowCount;
})(current, previous);
Client Script
function onLoad() {
g_form.addErrorMessage('test');
g_form.setValue('u_total_number_of_calls_received', g_scratchpad.rowCount);
}
Thanks for your quick reposnse
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2019 07:05 AM
Hi,
Can you try to run this script in background and check what rowCount you are getting
var gr = new GlideRecord('new_call');
gr.addEncodedQuery('call_type=incident^u_related_incident!=NULL');
gr.query();
var rowCount = gr.getRowCount();
gs.info('Row Count is: ' + rowCount);
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2019 09:08 AM
It provides a row count of 16.