- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2022 11:05 AM
Hello Guys,
For all existing catalog tasks, I want to copy "request_item.requested_for" field on RITM to "user" (custom) field on ScTasks. How can I achieve this? and How does the script look like?
We have few hundreds of catalog tasks, So, I wanted to do a bulk update using script.
Any help is appreciated.
Thanks,
Ben.
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-28-2022 12:27 PM
Hey Ben,
Just a quick check, in the list view of sc_task table, group by u_end_user field and confirm if all are under empty.
Also, added a new line to the code, please try
var a = "u_end_user=NULL";
var b = "parent.ref_sc_req_item.requested_forISNOTEMPTY";
var sc = new GlideRecord('sc_task');
sc.addEncodedQuery(a);
sc.addEncodedQuery(b);
sc.setLimit(10);
sc.query();
while(sc.next())
{
sc.u_end_user = sc.parent.ref_sc_req_item.requested_for;
sc.update();
sc.setWorkflow(false);
}
Regards,
Abhinay

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2022 11:15 AM
You already have the data in the sc_task. why do you need a custom field
sc_task.request_item.requested_for
So why a Custom field ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2022 11:27 AM
Hello Ben,
If the custom field is a Reference field of user's table, than you can use below code
var gr= new GlideRecord('sc_task');
gr.addNullQuery('custom_field_name');
gr.query();
while(gr.next()) {
gr.custom_field_name = gr.request_item.requested_for;
gr.update();
}
Else if it is a string field, use below
var gr= new GlideRecord('sc_task');
gr.addNullQuery('custom_field_name');
gr.query();
while(gr.next()) {
gr.custom_field_name = gr.request_item.requested_for.getdisplayvalue();
gr.update();
}
Please let me know if this works
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-28-2022 06:12 AM
Hello,
End users report on TASK table so, for consistency and to avoid confusion to end users, we have created a custom user field to copy fields on requested_for, requested_by, afftected_user, etc..
Thanks,
Ben.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2022 11:27 AM
Hello Ben,
If the custom field is a Reference field of user's table, than you can use below code
var gr= new GlideRecord('sc_task');
gr.addNullQuery('custom_field_name');
gr.query();
while(gr.next()) {
gr.custom_field_name = gr.request_item.requested_for;
gr.update();
}
Else if it is a string field, use below
var gr= new GlideRecord('sc_task');
gr.addNullQuery('custom_field_name');
gr.query();
while(gr.next()) {
gr.custom_field_name = gr.request_item.requested_for.getdisplayvalue();
gr.update();
}
Please let me know if this works