How can we make granular delegation work on ITSM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-12-2024 05:32 AM
Hi Team,
As per the document under granular delegation it is mentioned that in order to make the granular delegation work for ITSM we need to modify the ACLS but can someone help me in achieving this?
How and for which ACL on ISTM Platform we need to alter the ACLS?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-12-2024 06:08 AM
What type of delegation you looking for. Please provide more details.
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.
Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]
****************************************************************************************************************

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-12-2024 06:10 AM
Hi @service buzz ,
Most ITSM ACLs should allow approver access using granular delegation as long as they've been upgraded correctly. If you want more advanced access, or to implement it for custom tables, the best way we've found is to use the global.ApprovalDelegationUtil script include. It acts as a wrapper around both the old and new delegation systems so you can run them concurrently if you want, and gives you some functions to check individual record approvals, or to fetch lists of delegated records.
delegationUtil script include with necessary functions. One of them I used for ACLs.
My read Access control rule for ritm:
if (new itsm_DelegationUtil().hasDelegatedApproval(current))
answer = true;
Initialization of delegation Util:
var itsm_DelegationUtil = Class.create();
itsm_DelegationUtil.prototype = {
initialize: function() {
// BEGIN COPY FROM HR DELEGATION
this.DELEGATION_PLUGIN_ACTIVE = GlidePluginManager().isActive('com.glide.granular_service_delegation');
var maxRecordsReturned = gs.getProperty('sn_hr_core.delegation.max_records_returned_limit.override', '');
maxRecordsReturned = maxRecordsReturned && !isNaN(Number(maxRecordsReturned)) ? Number(maxRecordsReturned) : '';
this.MAX_DELEGATE_RECORD_RETURN = maxRecordsReturned;
// END COPY FROM HR DELEGATION
},
/* MY FUNCTIONS
...
*/
type: 'itsm_DelegationUtil'
};
The hasDelegatedApproval function:
//checks if the record has an active delegated approval to the current user
hasDelegatedApproval: function(record, userId) {
if (!record || !record.isValid())
return false;
if (!userId)
userId = gs.getUserID();
var targetTable = record.getTableName();
var documentId = record.sys_id;
// GET ALL APPROVALS FOR USER
var approvalGr = new sn_delegation.DelegationUtil().getDelegatedApprovalsForUser(userId, true);
var hasApproval = false;
while (approvalGr.next()){
// CHECK FOR DELEGATION (maybe optional)
if (approvalGr.document_id==documentId && approvalGr.source_table==targetTable){
hasApproval = true;
}
if (hasApproval) {
return new sn_delegation.DelegationUtil().isRecordDelegatedToUser(userId, approvalGr);
}
}
return false;
},
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-12-2024 07:16 AM - edited 06-12-2024 07:19 AM
Hi Sandeep ,
Thanks for your response.
Let me Explain you what I have done so far to test the granular delegation for ITSM
Initially I have installed the Granular delegation and tested for only HR Tasks which was working fine.
Later our project wants us to replace the existing delegation functionality with granular delegation .
In order to do this we need to test for ITSM as well on how granular delegation works for it.
While testing I noticed that change and Request item approvals when delegated are working fine as per the My Approvals filtered conditions .
However I am trying to delegate the incident, change ,catalog tasks assignments which are not working even for basic delegation.
In order make tasks assignments to work are we supposed to do anything else using granular delegation?
I have created delegation rules in incident task ,change task as attached the screen shots.
So how can we expect this granular delegation to work on these task assignments ?