What is the best alternative to GlideRecord in ACL ? Refer example below

Snehal13
Kilo Sage

This read ACL is on sc_req_item table for allowing read access to approvers.

I want to replace using GlideRecord with a different approach as SN doesn't recommend using GlideRecord/GlideRecordSecure/GlideRecordAggregate in ACL

 

var gr_obj = new GlideRecord('sysapproval_approver');
gr_obj.addQuery('approver', gs.getUserID());
gr_obj.addQuery('sysapproval.parent', current.sys_id);
gr_obj.query();
if (gr_obj.next()) {
     return true;
}
return false;

Example 2 

This read ACL is on sc_task table to allow read for all fields in sc_task

var task_gr = new GlideRecord('task');
task_gr.addQuery('parent', current.request_item.universal_request);
task_gr.query();
while (task_gr.next()) {
                   if (gs.getUser().isMemberOf(task_gr.assignment_group.getDisplayValue())) {
                   answer = true;
                   }
}

 

2 ACCEPTED SOLUTIONS

Ankur Bawiskar
Tera Patron
Tera Patron

@Snehal13 

you can create a script include and function and then write that code there

Then call that script include in ACL advanced script.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

@Snehal13 

Correct, the script include function will return true/false

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

14 REPLIES 14

Ankur Bawiskar
Tera Patron
Tera Patron

@Snehal13 

you can create a script include and function and then write that code there

Then call that script include in ACL advanced script.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Snehal13 

Thank you for marking my response as helpful.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Ankur Bawiskar , If I undestand you correctly,

 

In the ACL script, I will have syntax as answer = new ScriptIncludeName().functionName(<parameter>); 

 

The function is the script include will receive parameters and have the logic to compare and return true or false back to the  "answer" in the ACL script. right ?

@Snehal13 

Correct, the script include function will return true/false

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader