
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-16-2022 02:06 PM
I am new to scripting, but I just completed the Scripting in ServiceNow Fundamentals class and I am trying to put some of what I learned to work. It's not coming easy to me, yet.
'description_of_request' is part of a variable set on some of our catalog items. When a request is submitted we want the 'description_of_request' written to 'description' and 'short_description' fields on the RITM and the SCTASK. I wrote the following script in a business rule that works as intended for RITM. However, I cannot figure out how to modify this script to do the same for the SCTASK. How would you modify this script to also set the 'description' and 'short_description' fields on the SCTASK = description_of_request?
(function executeRule(current, previous /*null when async*/ ) {
//Query sc_req_item and match on current.request
//Update short_description and description of req_item with description_of_request from variable set
var grRITM = new GlideRecord('sc_req_item');
grRITM.addQuery('request', current.request);
grRITM.query();
while (grRITM.next()) {
current.short_description = grRITM.variables.description_of_request;
current.description = grRITM.variables.description_of_request;
grRITM.update();
}
})(current, previous);
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-17-2022 08:43 PM
Sure, I have tried your requirement in my PDI and have got that working now.
Please find the steps below:
1) Create a Before Insert and Update Business Rule on Requested Item table and use the script below:
(function executeRule(current, previous /*null when async*/) {
// Add your code here
current.short_description = current.variables.Variable Name; // Replace "Variable Name" with your variable name
current.description = current.variables.Variable Name; // Replace "Variable Name" with your variable name
})(current, previous);
Now create another Before Insert and Update Business Rule on Catalog Task table and use the script below:
(function executeRule(current, previous /*null when async*/) {
// Add your code here
current.short_description = current.request_item.short_description;
current.description = current.request_item.description;
})(current, previous);
This works for me in my PDI. Let me know if still you are facing an issue.
Hope this helps. Please mark the answer as correct/helpful based on impact.
Regards,
Shloke
Regards,
Shloke

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-16-2022 09:20 PM
Hi there,
You are mentioning this concerns some of your catalog items. The Business Rule now runs on all sc_req_items generated. Consider if this is correct. I would think not.
If it is just some, you could just update the sc_task generated, in your Workflow or your Flow. Have you considered this?
Anyway, looking at your scripting, multiple parts a bit odd. The Business Rule runs on your current sc_req_item. Why then perform a GlideRecord query on the same sc_req_item (this is unnecessary).
You are also updating the sc_req_item, why? Nothing changes to the sc_req_item? It's about updating the sc_task right? You are setting current.etc, and because it's a before business rule, these are also updated. Though only for the record this Business Rule runs on: the sc_req_item. So if you also want the sc_task to be updated, perform a GlideRecord query for the sc_task.
If my answer helped you in any way, please then mark it as helpful.
Kind regards,
Mark
2020, 2021 ServiceNow Community MVP
2020, 2021 ServiceNow Developer MVP
---
LinkedIn
Community article, blog, video list
Kind regards,
Mark Roethof
Independent ServiceNow Consultant
10x ServiceNow MVP
---
~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-17-2022 06:34 AM
Hi Mark,
Obviously, I have a lot to learn. Since I am struggling with the script for this, would you suggest I try Flow instead?
Thanks,
Adam
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-16-2022 09:25 PM
Hi,
I consider you must be having workflow attached to your catalog item
So use the workflow run script instead of BR for this
current.short_description = current.variables.description_of_request;
current.description = current.variables.description_of_request;
When you create catalog task using Catalog Task Activity; you can use Advanced script and set the description and short_description like this
task.short_description = current.variables.description_of_request;
task.description = current.variables.description_of_request;
Regards
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
01-17-2022 05:58 AM
Since you want the RITM short_description and description to be set once Request is submitted; you can use workflow run script as I mentioned.
You need not use business rule for that
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader