
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2018 01:32 PM
We have a requirement to make a certain group of ITIL users to have write access to only work notes. I was thinking of giving them an extra role that would prevent them to write to all fields except work notes. This seems like a lot of ACLs to write. Is there a better way to do this? Am I overthinking how I would write my ACLs?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-01-2018 05:47 AM
I found something on the ServiceNow Guru site that let me get all fields that have change in an array. It then allowed me to loop through them so I could determine if anything other then work notes was updated.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
if (gs.hasRole('pmo_itil')){
var gru = GlideScriptRecordUtil.get(current);
var changedFields = gru.getChangedFieldNames().toString().split(',');
//gs.log ("Changed Fields: " + changedFields);
for (var i = 0; i < changedFields.length; i++){
gs.log ("Changed Field: " + changedFields[i]);
if (changedFields[i] != '[work_notes]'){
gs.addErrorMessage('You do not have writes to change any fields but Work Notes');
current.setAbortAction(true);
return;
}
}
}
})(current, previous);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2018 01:25 PM
Thought, Is there a way to validate every field that changed in a business rule without having to list out each filed? Then if anything but work notes changes I can do a current.setAbortAction(true).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-01-2018 05:47 AM
I found something on the ServiceNow Guru site that let me get all fields that have change in an array. It then allowed me to loop through them so I could determine if anything other then work notes was updated.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
if (gs.hasRole('pmo_itil')){
var gru = GlideScriptRecordUtil.get(current);
var changedFields = gru.getChangedFieldNames().toString().split(',');
//gs.log ("Changed Fields: " + changedFields);
for (var i = 0; i < changedFields.length; i++){
gs.log ("Changed Field: " + changedFields[i]);
if (changedFields[i] != '[work_notes]'){
gs.addErrorMessage('You do not have writes to change any fields but Work Notes');
current.setAbortAction(true);
return;
}
}
}
})(current, previous);