Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

How to update the sc_req_item variable when the sc_task is closed

Joshua Comeau
Kilo Sage

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:

 

function onCondition() {
    var grTask = new GlideRecord('sc_task');
    grTask.get(current.sys_id); // Use 'sys_id' to get the current task
    var taskShortDescription = grTask.short_description; // Get the short description of the sc_task

    var grRITM = new GlideRecord('sc_req_item'); // Use 'sc_req_item' for RITM
    grRITM.get(current.request_item); // Use 'request_item' to get the related RITM
    grRITM.short_description = taskShortDescription; // Update the RITM short description
    grRITM.update(); // Update the RITM record
}
1 ACCEPTED SOLUTION

Brad Bowman
Kilo Patron
Kilo Patron

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);

View solution in original post

11 REPLIES 11

If you setup the Business Rule after Update when the State changes to Closed Complete, then this would get the short description from the task that was just closed. If you want to update the RITM short description with the short description of a task that is open, is this task created when/after the previous task is closed, or are all tasks created at the same time?

It actually closes 1 at a time in the flow but in this case it re-opens a task but essentially re-creating it with a state of open. 

One sctask will be opened at a time therefore hoping to be able to streamline the short descriptions 

OK, so instead on the Business Rule When to Run tab, make it after Insert, with no Filter Conditions.  The script will be the same.  This will update the RITM short description with the short description on the newly created, and open, task.

So it works but it is updating the RITM based on the SCTASK that was closed not the newly opened one. Just looking to know how to do the opposite?
I guess before > update?

Choose Before if you want to ensure the RITM update happens before the task gets saved to the database. Choose After if it should happen after the task is saved.

 

Thanks Regards,

Badrinarayan