attachment from SC_task to REQ

SAM321
Tera Contributor

hi all actually i have task , when i upload any attachment in SC task form ,it should also been seen in REQUEST form related to that sc task. i tried below script but its not working .. can anyone tell whats wrong with below script , because am new to this scripting world

3 ACCEPTED SOLUTIONS

jaheerhattiwale
Mega Sage
Mega Sage

@SAM321 Tried and Tested solution.

Please add when to run condition as below image

jaheerhattiwale_0-1671016182835.png

 

Add the below script:

var taskRec = new GlideRecord(current.table_name.toString());
taskRec.addQuery("sys_id", current.table_sys_id.toString());
taskRec.query();

if(taskRec.next()){
    GlideSysAttachment.copy(current.table_name.toString(), current.table_sys_id.toString(), "sc_request", taskRec.request.toString());
}
 
Please mark as correct answer if this solves your issue.
Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023

View solution in original post

@SAM321 Then keep the filter conditions same and change the script as below

 

var taskRec = new GlideRecord(current.table_name.toString());
taskRec.addQuery("sys_id", current.table_sys_id.toString());
taskRec.query();

 

if(taskRec.next()){
    GlideSysAttachment.copy(current.table_name.toString(), current.table_sys_id.toString(), "sc_req_item", taskRec.parent.toString());
}
 
Please mark as correct answer if this solves your issue.
Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023

View solution in original post

@SAM321 Create scheduled job

 

Go to "System Definition > Scheduled jobs" module

Click on new button

Click on "Automatically run a script of your choosing"

jaheerhattiwale_0-1671622060034.png

 

 

add below code and save

var scTask = new GlideRecord("sc_task");
scTask.addQuery("active=false");
scTask.query();

while(scTask.next()){
    GlideSysAttachment.copy("sc_task", scTask.sys_id.toString(), "sc_request", scTask.request.toString()); //This line for moving attachments to request
GlideSysAttachment.copy("sc_task", scTask.sys_id.toString(), "sc_req_item", scTask.parent.toString()); //This line for moving attachments to requested item
}
 
click on execute button
Please mark as correct answer if this solves your issue.
Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023

View solution in original post

27 REPLIES 27

@jaheerhattiwale sir actually am not working on any project...its a task given by my team head ..for learning purpose....He said try to do the task in another way

Please tell him that it the BR on attachment table will work BTW.

 

If at all he want it in another way please ask the trigger point. Like when the sc_task is closed then move the attachments to requested item.

Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023

yes when sc_task is closed attachment should be moved to request.

 

@SAM321 Ok got it.

Then create after update business rule on sc_task table and add condition "Active cahnges to false" as shown in image below

jaheerhattiwale_0-1671342714810.png

 

Add the below script:

(function executeRule(current, previous /*null when async*/ ) {


GlideSysAttachment.copy("sc_task", current.sys_id.toString(), "sc_request", current.request.toString()); //This line for moving attachments to request
GlideSysAttachment.copy("sc_task", current.sys_id.toString(), "sc_req_item", current.parent.toString()); //This line for moving attachments to requested item


})(current, previous);

 

Please mark as correct answer if this solves your issue.

Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023

@jaheerhattiwale sir can we do this task without using business rule?...means in any other way without going to business rule option