How can we make granular delegation work on ITSM

service buzz
Tera Contributor

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

3 REPLIES 3

Dr Atul G- LNG
Tera Patron
Tera Patron

Hi @service buzz 

 

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]

****************************************************************************************************************

Community Alums
Not applicable

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;
	},

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 ?