- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-11-2024 04:20 AM - edited 09-11-2024 04:21 AM
I want to know when a sc_task is closed to query the variable and/or the short description then update the same short description/variable to the sc_req_item
I was thinking something like this but it is not working:
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-11-2024 05:30 AM
Just to be clear, variables only exist once, in an object that is available to all sc_task records within a sc_req_item record, so you don't need to copy one to/from the other. You can copy a variable to a field like short description, or copy the short description to the short description or whatever. It would be best to do this as a Business Rule. In your scenario this BR would be on the sc_task table, after Update. Add Filter Conditions for a specific Catalog Item and/or Catalog Tasks, unless you always want this to run when every Catalog Task is closed, and one for State changes to Closed Complete, or whatever fits your criteria. In the Script on the Advanced tab is where you would do the GR on sc_req_item to update that record
(function executeRule(current, previous /*null when async*/ ) {
var grRITM = new GlideRecord('sc_req_item'); // Use 'sc_req_item' for RITM
if (grRITM.get(current.request_item)) { // Use 'request_item' to get the related RITM
grRITM.short_description = current.short_description; // Update the RITM short description
//grRITM.description = current.variables.var_name; //Update the RITM description with a variable
grRITM.update(); // Update the RITM record
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-11-2024 10:47 AM
If the BR is running only after Insert, then current.short_description is going to be that of the task that was just created. To be sure another BR or script is not affecting this, temporarily change it to current.number or something like.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-11-2024 05:59 AM - edited 09-11-2024 06:00 AM
Hi @Joshua Comeau ,
Create a Business Rule on the `sc_task` table, set to run **after update**. It should update the `sc_req_item` record’s `short_description` when a task is closed.
Business Rule Code
(function executeRule(current, previous /*null when async*/) {
if (current.state == '3' && current.state.changesTo('3')) {
/* Create a GlideRecord object for the sc_req_item table */
var grRITM = new GlideRecord('sc_req_item');
/* Query the sc_req_item record related to this task */
if (grRITM.get(current.request_item)) {
/* Update the sc_req_item short_description with the task short_description */
grRITM.short_description= current.short_description;
grRITM.update(); /* Save the changes */
gs.info('Updated RITM with short description from closed task.'); /* Log info message */
}
} else {
gs.info('Task state is not closed. No update performed.');
}
})(current, previous);
Please Mark it as Helpful ,If the Solution is Helpful
Thanks Regards
Badrinarayan
